void enqueue(int data) {
// Creating a new queue node
struct Node *newNode;
newNode = (struct Node *)malloc(sizeof(struct Node));
newNode -> data = data;
// If this node is the first node to be inserted
if (front == NULL) {
front = rear = newNode;
}
// If other nodes are already present
else {
rear -> next = newNode;
rear = newNode;
}
}
Dequeue Operation :
int dequeue() {
// If queue is already empty
if (front == NULL) {
printf("Queue underflow\n");
return -1;
}
else {
// Pointers for node & data to be deleted
struct Node *toDelete = front;
int deletedData = front -> data;
front = front -> next;
free(toDelete);
return deletedData;
}
}
Display Operation :
void display() {
// If queue is empty
if (front == NULL) {
printf("Queue is empty\n");
return;
}
struct Node *ptr = front;
while (ptr != NULL) {
printf("%d\t", ptr -> data);
ptr = ptr -> next;
}
printf("\n");
}