This repository has been archived on 2026-05-11. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
2026-04-20 20:09:16 +02:00

41 lines
834 B
C

#include "queue.h"
struct queue *enqueue(struct queue *queue, struct expression_element* element) {
struct queue *new_elt = calloc(1,sizeof(struct queue));
new_elt->data = element;
if(!queue)
return new_elt;
struct queue* current = queue;
while(current->next)
current = current->next;
current->next = new_elt;
return queue;
}
struct expression_element* dequeue(struct queue **queue) {
if (!queue || !*queue)
return NULL;
struct queue* removed = *queue;
struct expression_element* res = removed->data;
*queue = removed->next;
free(removed);
return res;
}
void queue_destroy(struct queue **queue) {
if(!queue)
return;
while (*queue) {
struct expression_element* dequeued = dequeue(queue);
free(dequeued);
}
}