fork download
  1. #include <stdio.h>
  2.  
  3. #define QUEUE_SIZE 100
  4.  
  5. int queue[QUEUE_SIZE];
  6. int front = 0;
  7. int rear = 0;
  8.  
  9. void printQueue() {
  10. printf("printQueue> ");
  11. for(int i = front; i < rear; i++) {
  12. printf("%d ", queue[i]);
  13. }
  14. printf("\n");
  15. }
  16.  
  17. int enQueue(int x) {
  18. printf("enQueue> front= %d rear= %d\n", front, rear);
  19.  
  20. if(rear == QUEUE_SIZE)
  21. return -1;
  22.  
  23. queue[rear] = x;
  24. rear++;
  25.  
  26. return 1;
  27. }
  28.  
  29. int deQueue() {
  30. printf("deQueue> front= %d rear= %d\n", front, rear);
  31.  
  32. if(front == rear) {
  33. printf("deQueue> queue empty\n");
  34. return -1;
  35. }
  36.  
  37. int x = queue[front];
  38. front++;
  39.  
  40. return x;
  41. }
  42. int main() {
  43.  
  44. enQueue(1);
  45. enQueue(2);
  46. enQueue(3);
  47.  
  48. printQueue();
  49.  
  50. printf("deQueue: %d\n", deQueue());
  51. printf("deQueue: %d\n", deQueue());
  52. printf("deQueue: %d\n", deQueue());
  53. printf("deQueue: %d\n", deQueue());
  54.  
  55. return 0;
  56. }
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
enQueue> front= 0 rear= 0
enQueue> front= 0 rear= 1
enQueue> front= 0 rear= 2
printQueue> 1 2 3 
deQueue> front= 0 rear= 3
deQueue: 1
deQueue> front= 1 rear= 3
deQueue: 2
deQueue> front= 2 rear= 3
deQueue: 3
deQueue> front= 3 rear= 3
deQueue> queue empty
deQueue: -1