Queue Implementation
Queue Implementation
Code Implementation
Part – 1
#include <stdio.h>
#include <stdbool.h>
return 0; }
Part – 2
1. Circular Queue
#include <stdio.h>
#include <stdbool.h>
int queue[MAX_SIZE];
int front = -1, rear = -1;
int main() {
enqueue(10);
enqueue(20);
enqueue(30);
enqueue(40);
enqueue(50);
display();
dequeue();
dequeue();
display();
enqueue(60);
enqueue(70);
display();
return 0;
}
2. Queue using Linked List
#include <stdio.h>
#include <stdlib.h>
int main() {
enqueue(10);
enqueue(20);
enqueue(30);
display();
dequeue();
dequeue();
display();
enqueue(40);
enqueue(50);
display();
return 0;
}
3. Priority Queue
#include <stdio.h>
#include <stdlib.h>
// Function to remove the highest priority element from the priority queue
int dequeue() {
if (front == NULL) {
printf("Priority queue is empty! Cannot dequeue\n");
return -1;
}
int dequeuedValue = front->data;
struct Node *temp = front;
front = front->next;
free(temp);
printf("%d dequeued from the priority queue\n", dequeuedValue);
return dequeuedValue;
}
int main() {
enqueue(30);
enqueue(20);
enqueue(50);
enqueue(40);
display();
dequeue();
dequeue();
display();
enqueue(60);
display();
return 0;
}
Sample and Significant Outputs
Part 1
10 enqueued to the queue
20 enqueued to the queue
30 enqueued to the queue
40 enqueued to the queue
50 enqueued to the queue
Queue elements: 10 20 30 40 50
10 dequeued from the queue
20 dequeued from the queue
Queue elements: 30 40 50
Queue is not empty!
Queue is full! Cannot enqueue 60
Queue is full! Cannot enqueue 70
Queue elements: 30 40 50
Part 2
10 enqueued to the circular queue
20 enqueued to the circular queue
30 enqueued to the circular queue
40 enqueued to the circular queue
50 enqueued to the circular queue
Circular Queue elements: 10 20 30 40 50
10 dequeued from the circular queue
20 dequeued from the circular queue
Circular Queue elements: 30 40 50
60 enqueued to the circular queue
70 enqueued to the circular queue
Circular Queue elements: 30 40 50 60 70