Advertisement
Guest User

Untitled

a guest
Jan 29th, 2020
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. /*static circular queue*/
  2. #include <stdio.h>
  3. #define size 5
  4.  
  5. void insertq(int[], int);
  6. void deleteq(int[]);
  7. void display(int[]);
  8.  
  9. int front = - 1;
  10. int rear = - 1;
  11.  
  12. int main()
  13. {
  14. int n, ch;
  15. int queue[size];
  16. do
  17. {
  18. printf("\n\n Circular Queue:\n1. Insert \n2. Delete\n3. Display\n0. Exit");
  19. printf("\nEnter Choice 0-3? : ");
  20. scanf("%d", &ch);
  21. switch (ch)
  22. {
  23. case 1:
  24. printf("\nEnter number: ");
  25. scanf("%d", &n);
  26. insertq(queue, n);
  27. break;
  28. case 2:
  29. deleteq(queue);
  30. break;
  31. case 3:
  32. display(queue);
  33. break;
  34. }
  35. }while (ch != 0);
  36. }
  37.  
  38.  
  39. void insertq(int queue[], int item)
  40. {
  41. if ((front == 0 && rear == size - 1) || (front == rear + 1))
  42. {
  43. printf("queue is full");
  44. return;
  45. }
  46. else if (rear == - 1)
  47. {
  48. rear++;
  49. front++;
  50. }
  51. else if (rear == size - 1 && front > 0)
  52. {
  53. rear = 0;
  54. }
  55. else
  56. {
  57. rear++;
  58. }
  59. queue[rear] = item;
  60. }
  61.  
  62. void display(int queue[])
  63. {
  64. int i;
  65. printf("\n");
  66. if (front > rear)
  67. {
  68. for (i = front; i < size; i++)
  69. {
  70. printf("%d ", queue[i]);
  71. }
  72. for (i = 0; i <= rear; i++)
  73. printf("%d ", queue[i]);
  74. }
  75. else
  76. {
  77. for (i = front; i <= rear; i++)
  78. printf("%d ", queue[i]);
  79. }
  80. }
  81.  
  82. void deleteq(int queue[])
  83. {
  84. if (front == - 1)
  85. {
  86. printf("Queue is empty ");
  87. }
  88. else if (front == rear)
  89. {
  90. printf("\n %d deleted", queue[front]);
  91. front = - 1;
  92. rear = - 1;
  93. }
  94. else
  95. {
  96. printf("\n %d deleted", queue[front]);
  97. front++;
  98. }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement