fork download
  1. #include <stdio.h>
  2. #define SIZE 100
  3.  
  4. int queue[SIZE];
  5. int front = -1, rear = -1;
  6.  
  7. void enqueue(int value) {
  8. if (rear == SIZE - 1) {
  9. printf("Overflow\n");
  10. }
  11. else if (front == -1 && rear == -1) {
  12. front = rear = 0;
  13. queue[rear] = value;
  14. printf("%d enqueued\n", value);
  15. }
  16. else {
  17. rear++;
  18. queue[rear] = value;
  19. printf("%d enqueued\n", value);
  20. }
  21. }
  22.  
  23. void dequeue() {
  24. if (front == -1 && rear == -1) {
  25. printf("Underflow\n");
  26. }
  27. else if (front == rear) {
  28. printf("%d dequeued\n", queue[front]);
  29. front = rear = -1;
  30. }
  31. else {
  32. printf("%d dequeued\n", queue[front]);
  33. front++;
  34. }
  35. }
  36.  
  37. void display() {
  38. printf("Queue elements: ");
  39. for (int i = front; i < rear + 1; i++) {
  40. printf("%d ", queue[i]);
  41. }
  42. printf("\n");
  43. }
  44. void peak()
  45. {
  46. printf("Peak element is %d\n", queue[front]);
  47. }
  48.  
  49. int main() {
  50. enqueue(10);
  51. enqueue(20);
  52. enqueue(30);
  53. display();
  54. dequeue();
  55. display();
  56. enqueue(40);
  57. display();
  58. peak();
  59.  
  60. return 0;
  61. }
  62.  
  63.  
Success #stdin #stdout 0.01s 5316KB
stdin
Standard input is empty
stdout
10 enqueued
20 enqueued
30 enqueued
Queue elements: 10 20 30 
10 dequeued
Queue elements: 20 30 
40 enqueued
Queue elements: 20 30 40 
Peak element is 20