fork(1) download
  1. #include <stdio.h>
  2. #define SIZE 5
  3. int queue[SIZE];
  4. int head, tail;
  5.  
  6. void enqueue(int value);
  7. int dequeue(void);
  8.  
  9. int main(void) {
  10. head = tail = 0;
  11. int data, i;
  12.  
  13. enqueue(1);
  14. enqueue(2);
  15. dequeue();
  16. enqueue(3);
  17. dequeue();
  18. enqueue(4);
  19. enqueue(5);
  20. dequeue();
  21. enqueue(6);
  22.  
  23. for (i = 0; i < SIZE; i++) {
  24. printf("queue[%d]=%d\n", i, queue[i]);
  25. }
  26.  
  27. return 0;
  28. }
  29.  
  30. void enqueue(int value) {
  31. if ((tail + 1) % SIZE == head) {
  32. printf("Queue is full\n");
  33. return;
  34. }
  35. queue[tail] = value;
  36. tail = (tail + 1) % SIZE;
  37. }
  38.  
  39. int dequeue(void) {
  40. int data;
  41. if (head == tail) {
  42. printf("Queue is empty\n");
  43. return -1;
  44. }
  45. data = queue[head];
  46. queue[head] = 0;
  47. head = (head + 1) % SIZE;
  48. return data;
  49. }
  50.  
  51.  
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
queue[0]=6
queue[1]=0
queue[2]=0
queue[3]=4
queue[4]=5