From 154874afda4a8df885e51c01f7681f04fb0b8e61 Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Sat, 9 Apr 2022 09:43:53 +0200 Subject: neue Verzeichnisstruktur --- queue.c | 115 ---------------------------------------------------------------- 1 file changed, 115 deletions(-) delete mode 100644 queue.c (limited to 'queue.c') diff --git a/queue.c b/queue.c deleted file mode 100644 index 6a472ee..0000000 --- a/queue.c +++ /dev/null @@ -1,115 +0,0 @@ -/* Standard C */ -#include -#include -#include - -/* Project */ -#include "util.h" - -/* --8<-- queue_type */ -typedef int T; - -struct queue_item { - struct queue_item *next; - T data; -}; - -struct queue { - struct queue_item *head, *tail; -}; -/* -->8-- */ - -/* --8<-- queue_init */ -void -queue_init(struct queue *queue) -{ - queue->head = NULL; -} -/* -->8-- */ - -/* --8<-- queue_put */ -void -queue_put(struct queue *queue, T data) -{ - struct queue_item *new_item; - - if ( (new_item = malloc(sizeof *new_item)) != NULL ) { - struct queue_item *tmp = queue->tail; - new_item->data = data; - new_item->next = NULL; - queue->tail = new_item; - if ( queue->head == NULL ) - queue->head = queue->tail; - else - tmp->next = queue->tail; - } - else { - ERROR("out of memory"); - } -} -/* -->8-- */ - -/* --8<-- queue_get */ -bool -queue_get(struct queue *queue, T *data) -{ - if ( queue->head ) { - struct queue_item *next = queue->head->next; - - if ( data ) { - *data = queue->head->data; - } - free(queue->head); - queue->head = next; - - return true; - } - else - return false; -} -/* -->8-- */ - -/* --8<-- queue_empty */ -bool -queue_empty(struct queue *queue) -{ - return queue->head == NULL; -} -/* -->8-- */ - -/* --8<-- queue_free */ -void -queue_free(struct queue *queue) -{ - struct queue_item *item, *next; - - for ( item = queue->head; item; item = next ) { - next = item->next; - free(item); - } -} -/* -->8-- */ - -int -main() -{ - struct queue queue[1]; - - queue_init(queue); - - for ( int i = 0; i != 10; ++i ) { - queue_put(queue, i); - } - - while ( !queue_empty(queue) ) { - int i; - if ( queue_get(queue, &i) ) - printf("%d\n", i); - else - ERROR("this shouldn't happen!"); - } - - queue_free(queue); - - return EXIT_SUCCESS; -} -- cgit v1.3