/*7. PROGRAM TO IMPLEMENT PRIORITY QUEUES*/ #include #include #define size 5 int r1=-1,r2=-1,r3=-1; int f1,f2,f3; int q1[size],q2[size],q3[size]; void PQinsert(int item,int num) { switch(num) { case 1: if(r1==size-1) printf("\nQ1 Overflow\n"); else q1[++r1]=item; break; case 2: if(r2==size-1) printf("\nQ2 Overflow\n"); else q2[++r2]=item; break; case 3: if(r3==size-1) printf("\nQ3 Overflow\n"); else q3[++r3]=item; break; case 4: exit(0); default : printf("\nQ number should be b/w 1 to 3\n"); } getch(); } void PQdelete() { if(r1==-1) printf("\nQ1 Underflow\n"); else { printf("\nFrom Q1"); printf("\nDeleted item is %d\n",q1[f1++]); if(f1>r1) f1=0,r1=-1; return; } if(r2==-1) printf("\nQ2 Underflow\n"); else { printf("\nFrom Q2"); printf("\nDeleted item is %d\n",q2[f2++]); if(f2>r2) f2=0,r2=-1; return; } if(r3==-1) printf("\nQ3 Underflow\n"); else { printf("\nFrom Q3"); printf("\nDeleted item is %d\n",q3[f3++]); if(f3>r3) f3=0,r3=-1; return; } } void display(int i,int f,int r,int q[]) { int j; if(r==-1) printf("\nQ%d is empty",i); else { printf("\nQ%d contents are\n",i); for(j=f;j<=r;j++) printf("%d\t",q[j]); } } void PQdisplay() { display(1,f1,r1,q1); display(2,f2,r2,q2); display(3,f3,r3,q3); } void main() { int ch,item,num; for(;;) { clrscr(); printf("\n1:INSERT\n2:DELETE\n3:DISPLAY\n4:Quit\n"); printf("\nEnter ur choice\n"); scanf("%d",&ch); switch(ch) { case 1: printf("\nEnter the Q element to be inserted\n"); scanf("%d",&item); printf("\nEnter Q number\n"); scanf("%d",&num); PQinsert(item,num); break; case 2: PQdelete(); break; case 3: PQdisplay(); break; case 4: exit(0); default : printf("Invalid choice\n"); } getch(); } }