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:
Squibid 2025-11-17 17:51:57 -05:00
parent 9daffd4ed1
commit 758edf9d30
Signed by: squibid
GPG key ID: BECE5684D3C4005D
4 changed files with 93 additions and 1 deletions

33
ds.c
View file

@ -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);
}