feat(queue): introduce a queue ds, internally this is just a stack...
the only actual difference is a oneline change which makes pushing append instead of prepend the new data.
This commit is contained in:
parent
9daffd4ed1
commit
758edf9d30
4 changed files with 93 additions and 1 deletions
33
ds.c
33
ds.c
|
|
@ -420,3 +420,36 @@ void
|
|||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ds_queue_t
|
||||
*ds_queue_init(void)
|
||||
{
|
||||
return ds_stack_init();
|
||||
}
|
||||
|
||||
int
|
||||
ds_queue_push(ds_queue_t *queue, void *data)
|
||||
{
|
||||
if (queue->n == 0) {
|
||||
queue->items = ds_sll_new_node(data);
|
||||
queue->n++;
|
||||
return 0;
|
||||
}
|
||||
int r = ds_sll_append(queue->items, data);
|
||||
if (!r) {
|
||||
queue->n++;
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
void
|
||||
*ds_queue_pop(ds_queue_t *queue)
|
||||
{
|
||||
return ds_stack_pop((ds_stack_t *)queue);
|
||||
}
|
||||
|
||||
void
|
||||
*ds_queue_peek(ds_queue_t *queue, unsigned x)
|
||||
{
|
||||
return ds_stack_peek((ds_stack_t *)queue, x);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue