mirror of
https://github.com/FizzyApple12/Waccon.git
synced 2026-09-22 23:08:05 +03:00
40 lines
699 B
C
40 lines
699 B
C
#include <stdlib.h>
|
|
#include <stdbool.h>
|
|
#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;
|
|
} |