/*Program to empelement Priority Queue operations
compiler- Turbo c++ author- Mangilal Sharma
--------------------------------------------------------*/
#include<iostream.h>
#include<conio.h>
#include<process.h>
class pqueue
{
int front,rear,choice;
public:
struct data
{
int val,p,o;
}d[MAX];
void insert();
void deletion();
void display();
pqueue();
};
void pqueue::insert()
{
data d1;
if(rear==MAX-1)
cout<<"Priority Queue is Full";
else
{
cout<<"Enter Value ";
cin>>d1.val;
cout<<"Enter Priority ";
cin>>d1.p;
cout<<"Enter Order ";
cin>>d1.o;
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;
}
}
}
}
}
void pqueue::deletion()
{
if(front==-1)
cout<<"Priority Queue is Empty";
else
{
cout<<"deleted followings...\n";
cout<<"Value = "<<d[front].val<<endl;
cout<<"Priority = "<<d[front].p<<endl;
cout<<"Order = "<<d[front].o<<endl;
if(front==rear)
front=rear=-1;
else
front++;
}
}
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<<endl;
}
}
}
pqueue::pqueue()
{
front=rear=-1;
while(1)
{
int choice;
cout<<"\n\t\t\t PRIORITY QUEUE\n";
cout<<"\t\t1. To Insert an Element in priority Queue\n";
cout<<"\t\t2. To Delete an Element from priority Queue\n";
cout<<"\t\t3. To Display the Elements of priority Queue\n";
cout<<"\t\t4. To Main menu\n";
cout<<"\t\t5. To Exit from Programme\n";
cout<<"\n\t\t Enter Your Choice= ";
cin>>choice;
switch(choice)
{
case 1:
insert();break;
case 2:
deletion();break;
case 3:
display();break;
case 4:
return;
case 5:
exit(1);
default:
cout<<"\n\t\tWrong Choice, Enter Again\n";
}
}
}
/*=========================8Nov.,2010=============================*/
.thank you for sharing useful post.
ReplyDeleteweb programming tutorial
welookups