#include< conio.h >
const int MAX=5;
class pqueue
{
int front,rear;
public:
struct data
{
int val,p,o;
}d[MAX];
pqueue()
{
front=rear=-1;
}
void insert(data d1);
data deletion();
void display();
};
void pqueue :: insert(data d1)
{
if(rear==MAX-1)
cout<<"Priority Queue is Full";
else
{
rear++;
d[rear]=d1;
if(front==-1)
front=0;
data temp;
for(int i=front;i<=rear;i++)
for(int j=i+1;j<=rear;j++)
{
if(d[i].p > d[j].p)
{
temp=d[i];
d[i]=d[j];
d[j]=temp;
}
else
{
if(d[i].p==d[j].p)
{
if(d[i].o > d[j].o)
{
temp=d[i];
d[i]=d[j];
d[j]=temp;
}
}
}
}
}
}
data pqueue :: deletion()
{
data d1;
if(front==-1)
cout<<"Priority Queue is Empty";
else
{
d1=d[front];
if(front==rear)
front=rear=-1;
else
front++;
}
return d1;
}
void pqueue :: display()
{
if(front==-1)
cout<<"Priority Queue is Empty";
else
{
for(int i=front;i<=rear;i++)
{
cout<<"Object :"<< i+1<< endl;
cout<<"Value ="<< d[i].val<< endl;
cout<<"Priority="<< d[i].p<< endl;
cout<<"Order = "<< d[i].o<< endl;
}
}
}
void main()
{
pqueue p1;
data d1;
char op;
do
{
int ch;
clrscr();
cout<<"----------Menu-------------";
cout<<" 1.Insertion
2.Deletion
3.Display
4.Exit";
cout<<"Enter your Choice<1..4> ?";
cin>>ch;
switch(ch)
{
case 1 : cout<<"Enter Value ?";
cin>>d1.val;
cout<<"Enter Priority?";
cin>>d1.p;
cout<<"Enter Order ?";
cin>>d1.o;
p1.insert(d1);
break;
case 2 : d1=p1.deletion();
cout<<"Value = "<< d1.val<< endl;
cout<<"Priority = "<< d1.p<< endl;
cout<<"Order ="<< d1.o<< endl;
break;
case 3 : p1.display();
break;
}
cout<<"Do You Want to Continue < Y/N > ?";
cin>>op;
}while(op=='Y' || op=='y');
getch();
}
No comments:
Post a Comment