Posted by : Naveen's Blogs
Tuesday, 29 April 2014
#include< iostream.h > #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(); }
Related Posts :
- Back to Home »
- Data Structures , queue »
- Program for Priority Queue
