#include #include #include "queue.h" void enqueue(node_t **head, int val) { node_t *new_node = malloc(sizeof(node_t)); if (!new_node) return; new_node->val = val; new_node->next = *head; *head = new_node; } int dequeue(node_t **head) { node_t *current, *prev = NULL; int retval = -1; if (*head == NULL) return -1; current = *head; while (current->next != NULL) { prev = current; current = current->next; } retval = current->val; free(current); if (prev) prev->next = NULL; else *head = NULL; return retval; } bool isEmpty(node_t **head) { return *head == NULL; }