main() { int b=1,item,front[5],rear[5],i,a,n,p,j; int m[5][5]; for(i=0;i<=4;i++) { front[i]=-1; rear[i]=-1; } printf("enter rhe size of priority queue\n"); scanf("%d",&n); while(b==1) { printf("enter the option\n"); printf("1.Insert an item\n"); printf("2.Delete an item\n"); printf("3.Display the circular queue\n"); printf("4.Terminate\n"); scanf("%d",&a); switch(a) { case 1: { printf("Enter the item\n"); scanf("%d",&item); printf("Enter the priority of the item\n"); scanf("%d",&p); --p; if((front[p]==0 && rear[p]==n-1)||(front[p]==rear[p]+1)) { printf("Overflow\n"); b-=1; break; } else if(front[p]==-1 && rear[p]==-1) { front[p]=0; rear[p]=0; } else if(rear[p]==n-1) rear[p]=0; else rear[p]=rear[p]+1; m[p][rear[p]]=item; break; } case 2: { if(front[p]==-1 && rear[p]==-1) { printf("Underflow\n"); b-=1; break; } else if(front[p]==rear[p]) { front[p]=-1; rear[p]=-1; } else if(front[p]==n-1) front[p]=0; else front[p]=rear[p]+1; break; } case 3: { for(i=0;i<=p;i++) { if(rear[i]>=front[i]) { for(j=front[i];j<=rear[i];j++) printf("%d\t",m[i][j]); } else { for(j=front[i];j<n;j++) printf("%d\t",m[i][j]); for(j=0;j<=rear[i];j++) printf("%d\t",m[i][j]); } } printf("\n"); break; } case 4: { b-=1; break; } } } }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)