Aim
WAP to demonstrate
the implementation of various operation on a linear Queue or a circular queue
represented using a linear array
a)
Enque
b)
Deque
c)
Display
d)
Exit
Algorithm:
The
steps of enqueue operation are given below:
o First, we will check
whether the Queue is full or not.
o Initially the front and
rear are set to -1. When we insert the first element in a Queue, front and rear
both are set to 0.
o When we insert a new
element, the rear gets incremented, i.e., rear=rear+1.
The steps of dequeue
operation are given below:
o First, we check whether the
Queue is empty or not. If the queue is empty, we cannot perform the dequeue
operation.
o When the element is
deleted, the value of front gets decremented by 1.
o If there is only one
element left which is to be deleted, then the front and rear are reset to -1.
Program code:
#include <iostream>
using namespace std;
struct node
{
int data;
struct node *next;
};
struct node *front = NULL;
struct node *rear = NULL;
struct node *temp;
void Insert()
{
int val;
cout << "Insert the
element in queue : " << endl;
cin >> val;
if (rear == NULL)
{
rear = (struct node
*)malloc(sizeof(struct node));
rear->next = NULL;
rear->data = val;
front = rear;
}
else
{
temp = (struct node
*)malloc(sizeof(struct node));
rear->next = temp;
temp->data = val;
temp->next = NULL;
rear = temp;
}
}
void Delete()
{
temp = front;
if (front == NULL)
{
cout <<
"Underflow" << endl;
return;
}
else if (temp->next != NULL)
{
temp = temp->next;
cout << "Element
deleted from queue is : " << front->data << endl;
free(front);
front = temp;
}
else
{
cout << "Element
deleted from queue is : " << front->data << endl;
free(front);
front = NULL;
rear = NULL;
}
}
void Display()
{
temp = front;
if ((front == NULL) &&
(rear == NULL))
{
cout << "Queue
is empty" << endl;
return;
}
cout << "Queue
elements are: ";
while (temp != NULL)
{
cout << temp->data
<< " ";
temp = temp->next;
}
cout << endl;
}
int main()
{
int ch;
cout << "1) Insert
element to queue" << endl;
cout << "2) Delete
element from queue" << endl;
cout << "3) Display
all the elements of queue" << endl;
cout << "4)
Exit" << endl;
do
{
cout << "Enter
your choice : " << endl;
cin >> ch;
switch (ch)
{
case 1:
Insert();
break;
case 2:
Delete();
break;
case 3:
Display();
break;
case 4:
cout <<
"Exit" << endl;
break;
default:
cout <<
"Invalid choice" << endl;
}
} while (ch != 4);
return 0;
}
Output: