QueueUsingLL Tilak Jain 42 H2
QueueUsingLL Tilak Jain 42 H2
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* next;
};
void enqueue() {
int value;
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
if (!newNode) {
printf("Heap Overflow Cannot enqueue more elements\n");
return;
}
printf("Enter the value to enqueue\n");
scanf("%d", &value);
newNode->data = value;
newNode->next = NULL;
if (rear == NULL) {
front = rear = newNode;
} else {
rear->next = newNode;
rear = newNode;
}
printf("%d enqueued to queue\n", value);
}
void dequeue() {
if (front == NULL) {
printf("Queue Underflow Cannot dequeue from an empty queue\n");
} else {
struct Node* temp = front;
printf("%d dequeued from queue\n", temp->data);
front = front->next;
if (front == NULL) {
rear = NULL;
}
free(temp);
}
}
void display() {
if (front == NULL) {
printf("Queue is empty\n");
} else {
struct Node* temp = front;
printf("Queue elements ");
while (temp != NULL) {
printf("%d ", temp->data);
temp = temp->next;
}
printf("\n");
}
}
int main() {
int choice;
while (1) {
printf("\n1 Enqueue\n2 Dequeue\n3 Display\n4 Exit\n");
printf("Enter your choice\n");
scanf("%d", &choice);
switch (choice) {
case 1: enqueue(); break;
case 2: dequeue(); break;
case 3: display(); break;
case 4: printf("Exiting program\n"); return 0;
OUTPUT :