diff options
author | Marvin Borner | 2023-05-30 23:05:30 +0200 |
---|---|---|
committer | Marvin Borner | 2023-05-30 23:33:39 +0200 |
commit | cbd21e1da0d763225e7ea3594d4e6d8e96863790 (patch) | |
tree | dae4242584e178b59337ca247aa532805af0d8d0 /src/queue.c | |
parent | e78acdabd1436083c503a5f1860ecdf14f3ee1bd (diff) |
Added hash-based approach
Diffstat (limited to 'src/queue.c')
-rw-r--r-- | src/queue.c | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/src/queue.c b/src/queue.c deleted file mode 100644 index 5f30717..0000000 --- a/src/queue.c +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright (c) 2023, Marvin Borner <dev@marvinborner.de> -// SPDX-License-Identifier: MIT - -#include <stdlib.h> - -#include <queue.h> -#include <log.h> - -struct queue *queue_new(void) -{ - struct queue *queue = malloc(sizeof(*queue)); - if (!queue) - fatal("out of memory!\n"); - queue->head = 0; - queue->tail = 0; - return queue; -} - -void queue_free(struct queue *queue) -{ - while (queue->head) { - struct queue_node *node = queue->head; - queue->head = node->next; - free(node); - } - free(queue); -} - -void queue_push(struct queue *queue, void *data) -{ - struct queue_node *node = malloc(sizeof(*node)); - if (!node) - fatal("out of memory!\n"); - node->data = data; - node->next = 0; - if (queue->tail) { - queue->tail->next = node; - queue->tail = node; - } else { - queue->head = node; - queue->tail = node; - } -} - -void *queue_pop(struct queue *queue) -{ - if (!queue->head) - return 0; - struct queue_node *node = queue->head; - queue->head = node->next; - if (!queue->head) - queue->tail = 0; - void *data = node->data; - free(node); - return data; -} |