Advertisement
Adrita

circular queue

Feb 2nd, 2020
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int arraysize=4;
  4. void enqueue(int q[],int &rear,int item,int &cnt)
  5. {
  6. if(cnt==arraysize)
  7. cout<<"OVERFLOW"<<endl;
  8. else
  9. {
  10. q[rear]=item;
  11. rear=(rear+1)%arraysize;
  12. cnt++;
  13. }
  14. }
  15. void dequeue(int q[],int &frnt,int &cnt)
  16. {
  17. if(cnt==0)
  18. cout<<"UNDERFLOW"<<endl;
  19. else
  20. {
  21. q[frnt]=0;
  22. frnt=(frnt+1)%arraysize;
  23. cnt--;
  24. }
  25. }
  26. int getfrnt(int q[],int frnt)
  27. {
  28. return q[frnt];
  29. }
  30. void display(int q[],int frnt,int rear)
  31. {
  32. for(int i=frnt;i!=rear;i=(i+1)%arraysize)
  33. cout<<getfrnt(q,i)<<" ";
  34. cout<<"\n";
  35. }
  36. int main()
  37. {
  38. int ar[arraysize+1],rear=0,frnt=0,cnt=0;
  39. enqueue(ar,rear,5,cnt); display(ar,frnt,rear);
  40. enqueue(ar,rear,10,cnt);display(ar,frnt,rear);
  41. enqueue(ar,rear,10,cnt);display(ar,frnt,rear);
  42. dequeue(ar,frnt,cnt); display(ar,frnt,rear);
  43. enqueue(ar,rear,20,cnt);display(ar,frnt,rear);
  44. dequeue(ar,frnt,cnt); display(ar,frnt,rear);
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement