UCFD_SPARSE  v1.0
Documentation
Loading...
Searching...
No Matches
queue.c
Go to the documentation of this file.
1
21#include <stdio.h>
22#include <stdlib.h>
23#include "queue.h"
24
25
30void initQueue(struct Queue *queue)
31{
32 queue -> front = NULL;
33 queue -> rear = NULL;
34}
35
36
41int isEmpty(struct Queue *queue)
42{
43 if (queue->front == NULL)
44 return 1;
45 else
46 return 0;
47}
48
49
55void enqueue(struct Queue *queue, int data)
56{
57 struct Node *newNode = (struct Node *)malloc(sizeof(struct Node));
58 newNode -> data = data;
59 newNode -> next = NULL;
60
61 if (isEmpty(queue)) {
62 queue -> front = newNode;
63 queue -> rear = newNode;
64 }
65 else {
66 queue -> rear -> next = newNode;
67 queue -> rear = newNode;
68 }
69}
70
71
77int dequeue(struct Queue *queue)
78{
79 struct Node *delNode;
80 int popdata;
81
82 // Raise exception if queue is empty
83 if (isEmpty(queue)){
84 printf("Empty Queue\n");
85 return -1;
86 }
87
88 //
89 delNode = queue -> front;
90 popdata = delNode -> data;
91 queue -> front = queue -> front -> next;
92
93 free(delNode);
94
95 return popdata;
96}
void initQueue(struct Queue *queue)
Initialize queue structure with NULL value.
Definition: queue.c:30
int isEmpty(struct Queue *queue)
Check if queue structure is empty.
Definition: queue.c:41
int dequeue(struct Queue *queue)
Take out the first added element.
Definition: queue.c:77
void enqueue(struct Queue *queue, int data)
Allocate new node and add to queue structure.
Definition: queue.c:55
Node data structure contains data and next node pointer.
Definition: queue.h:7
int data
Definition: queue.h:8
struct Node * next
Definition: queue.h:9
Queue data structure.
Definition: queue.h:16
struct Node * front
Definition: queue.h:17