[go: up one dir, main page]

0% found this document useful (0 votes)
8 views6 pages

EXP4B

never refer this

Uploaded by

peran18055
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views6 pages

EXP4B

never refer this

Uploaded by

peran18055
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

PROGRAM:

#include <stdio.h>

#include <stdlib.h>

// Node structure definition

struct Node {

int data;

struct Node* next;

};

// Queue structure definition

struct Queue {

struct Node* front;

struct Node* rear;

};

// Function prototypes

struct Node* createNode(int data);

void initializeQueue(struct Queue* queue);

void enqueue(struct Queue* queue, int data);

int dequeue(struct Queue* queue);

void displayQueue(struct Queue* queue);

int main() {

struct Queue queue;

int choice, element;

initializeQueue(&queue);

while (1) {

printf("\nQueue Operations Menu:\n");

printf("1. Enqueue\n");

printf("2. Dequeue\n");

printf("3. Display\n");

printf("4. Exit\n");
printf("Enter your choice: ");

scanf("%d", &choice);

switch (choice) {

case 1:

printf("Enter element to enqueue: ");

scanf("%d", &element);

enqueue(&queue, element);

break;

case 2:

element = dequeue(&queue);

if (element != -1)

printf("Dequeued element: %d\n", element);

break;

case 3:

displayQueue(&queue);

break;

case 4:

exit(0);

default:

printf("Invalid choice! Please enter a valid option.\n");

return 0;

// Function to create a new node

struct Node* createNode(int data) {

struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));

if (!newNode) {

printf("Memory allocation error\n");

exit(1);
}

newNode->data = data;

newNode->next = NULL;

return newNode;

// Function to initialize the queue

void initializeQueue(struct Queue* queue) {

queue->front = NULL;

queue->rear = NULL;

// Function to enqueue an element to the queue

void enqueue(struct Queue* queue, int data) {

struct Node* newNode = createNode(data);

if (queue->rear == NULL) {

queue->front = queue->rear = newNode;

printf("Element enqueued: %d\n", data);

return;

queue->rear->next = newNode;

queue->rear = newNode;

printf("Element enqueued: %d\n", data);

// Function to dequeue an element from the queue

int dequeue(struct Queue* queue) {

if (queue->front == NULL) {

printf("Error: Queue underflow. Cannot dequeue element.\n");

return -1;

struct Node* temp = queue->front;

int dequeuedElement = temp->data;


queue->front = queue->front->next;

if (queue->front == NULL) {

queue->rear = NULL;

free(temp);

return dequeuedElement;

// Function to display the queue elements

void displayQueue(struct Queue* queue) {

if (queue->front == NULL) {

printf("Queue is empty.\n");

return;

printf("Queue elements: ");

struct Node* temp = queue->front;

while (temp != NULL) {

printf("%d ", temp->data);

temp = temp->next;

printf("\n");

}
OUTPUT:

Queue Operations Menu:


1. Enqueue
2. Dequeue
3. Display
4. Exit
Enter your choice: 1
Enter element to enqueue: 10
Element enqueued: 10

Queue Operations Menu:


1. Enqueue
2. Dequeue
3. Display
4. Exit
Enter your choice: 1
Enter element to enqueue: 20
Element enqueued: 20

Queue Operations Menu:


1. Enqueue
2. Dequeue
3. Display
4. Exit
Enter your choice: 1
Enter element to enqueue: 30
Element enqueued: 30

Queue Operations Menu:


1. Enqueue
2. Dequeue
3. Display
4. Exit
Enter your choice: 3
Queue elements: 10 20 30

Queue Operations Menu:


1. Enqueue
2. Dequeue
3. Display
4. Exit
Enter your choice: 2
Dequeued element: 10

Queue Operations Menu:


1. Enqueue

2. Dequeue
3. Display
4. Exit
Enter your choice: 3
Queue elements: 20 30

Queue Operations Menu:


1. Enqueue
2. Dequeue
3. Display
4. Exit
Enter your choice: 4

You might also like