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(); 
  }

Leave a Reply

Subscribe to Posts | Subscribe to Comments

Welcome to My Blog

Popular Post

Blogger templates

Powered by Blogger.

- Copyright © 2025 Data Structures using C++ -Robotic- Powered by Blogger - Designed by NAVEEN KUMAR -

6