QUEUE USING ARRAYS by smd
#include<stdio.h>
#define size 100
int queue[size];
int front = -1, rear = -1;
void enqueue(int x)
{
if (rear == size - 1)
{
printf("Queue is overflow\n");
} else
{
if (front == -1)
{
front = 0; // Initialize front if queue was empty
}
rear++;
queue[rear] = x;
printf("%d inserted sucessfully\n", x);
}
}
void dequeue()
{
if (front == -1 || front > rear)
{
printf("Queue is underflow\n");
} else
{
printf("%d deleted successfully\n", queue[front]);
front++;
if (front > rear) // Reset queue if it becomes empty
{
front =rear = -1;
}
}
}
void display()
{
if (front == -1 || front > rear)
{
printf("Queue is empty\n");
} else
{
printf("Queue elements are: ");
for (int i = front; i <= rear; i++)
{
printf("%d ", queue[i]);
}
printf("\n");
}
}
int main()
{
int choice, x;
while (1)
{
printf("\n1. Enqueue\n2. Dequeue\n3. Display\n4. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice)
{
case 1:
printf("Enter value to enqueue: ");
scanf("%d", &x);
enqueue(x);
break;
case 2:
dequeue();
break;
case 3:
display();
break;
case 4:
return 0;
default:
printf("Invalid choice! Please try again.\n");
}
}
}
Comments
Post a Comment