Queue
A queue is an ordered collection of items from which
items may be deleted at one end called the front if queue and into which items
may be inserted at the other end called the rear of queue.
Algorithm to insert element in a linear queue
1. Initialize
the front and rear position
i.e.
front = -1 , rear = -1
2. Repeat
step 3 to 4 until rear <= max size -1
where max size is the maximum size of the array
3. Read
the item to be inserted
4. If
(front == -1) then set front =0, rear = 0
i.e.
increment front and rear position by one
front=
front + 1
rear
= rear +1
else
increment
rear by one
i.e.
rear = rear +1
END IF
5. Set
Queue[rear]=item
6. Print
Queue overflow message
If
front = rear = max size
Algorithm to delete element in a linear queue
1. Repeat
step 2 to 4 until front >= 0
2. Set
item = queue[front]
3. If
(front == rear)
Set front = -1 , rear = -1
Else
Increase front by one
i.e. front = front + 1
end if
4. Print
the deleted item from queue
5. If
(front == rear) then print queue is empty message and exit.
Program to perform various operation in linear queue implemented in C.
#include<stdio.h>
#include<process.h>
#define maxsize 5
int rear=-1;
int front=-1;
int queue[maxsize];
void add()
{
int y;
if(rear==maxsize-1)
{
printf("queue overflow");
return;
}
else if(front==-1)
{
front=0;
rear=0;
}
else{
printf("Enter value ");
scanf("%d",&y);
queue[rear]=y;
rear=rear+1;
}
}
void del()
{
if(front==-1)
{
printf("Underflow");
return;
}
printf("the deleted element is
%d",queue[front]);
if(front==rear)
{
front=-1;
rear=-1;
}
else{
front=front+1;
}
}
void display()
{
int i;
for(i=front;i<rear;i++)
{
printf("%d\n",queue[i]);
}
}
void main()
{
int a;
while(1)
{
printf("Enter 1 to add 2 to delelt and
3 to dispaly");
scanf("%d",&a);
switch(a)
{
case 1:
add();
break;
case 2:
del();
break;
case 3:
display();
break;
default :
exit (0);
}
}
}
Program to perform various operation in linear queue implemented in C++.
#include<iostream>
#define size 5
using namespace std;
class queue
{
private:
int a,front,rear;
int q[size];
public:
//constructor to initialise the value of the queue
queue()
{
front=-1;
rear=-1;
}
//function to push element
void enqueue(int b)
{
if (rear>size-1)
cout<<"\nQueue
overflow\n";
else
{
rear++;
q[rear]=b;
cout<<q[rear]<<"
enqueued.\n";
}
}
//function to pop the element
void dequeue()
{
if (front<rear)
{
cout<<q[++front]<<" is dequeued\n";
q[front]='\0';
}
else
{
front=0;
cout<<"\nQueue
underflow\n";
}
}
};
int main()
{
queue q;
q.enqueue(1);
q.enqueue(2);
q.enqueue(3);
q.enqueue(4);
q.enqueue(5);
q.enqueue(6);
q.enqueue(7);
cout<<"\n";
q.dequeue();
q.dequeue();
q.dequeue();
q.dequeue();
q.dequeue();
q.dequeue();
q.dequeue();
return 0;
}
No comments:
Post a Comment