fork 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. {
  11. head = tail = 0;
  12. int i;
  13.  
  14. enqueue(1);
  15. enqueue(2);
  16. dequeue();
  17. enqueue(3);
  18. dequeue();
  19. enqueue(4);
  20. enqueue(5);
  21. dequeue();
  22. enqueue(6);
  23.  
  24. for(i=0; i<size; i++){
  25. printf("queue[%d]=%d\n", i, queue[i] );
  26. }
  27. return 0;
  28. }
  29. void enqueue(int value){
  30. if(head == (tail+1)%size){
  31. printf("満杯の状態\n");
  32. }
  33. else{
  34. queue[tail++] = value;
  35. }
  36. tail = tail%size;
  37. }
  38.  
  39. int dequeue(void){
  40. int value;
  41. if(head == tail){
  42. printf("空の状態\n");
  43. return 0;
  44. }
  45. else{
  46. value = queue[head];
  47. queue[head] = 0;
  48. head++;
  49. }
  50. head = head%size;
  51. return value;
  52. }
  53.  
  54.  
  55.  
Success #stdin #stdout 0s 5324KB
stdin
Standard input is empty
stdout
queue[0]=6
queue[1]=0
queue[2]=0
queue[3]=4
queue[4]=5