fork download
  1. #include<stdio.h>
  2.  
  3. #define SIZE 5
  4. int queue[SIZE];
  5. int head, tail;
  6.  
  7. void enqueue(int value);
  8. int dequeue(void);
  9.  
  10. void print_q(){
  11. for(int i=0; i<SIZE; i++){
  12. printf("queue[%d]=%d head=%d tail=%d ,", i, queue[i],head,tail );
  13. }
  14. printf("\n------------\n");
  15. }
  16. int main(void)
  17. {
  18. head = tail = 0;
  19. int data, i;
  20.  
  21. enqueue(1);
  22. enqueue(2);
  23. dequeue();
  24. enqueue(3);
  25. dequeue();
  26. enqueue(4);
  27. enqueue(5);
  28. dequeue();
  29. enqueue(6);
  30.  
  31. for(i=0; i<SIZE; i++){
  32. printf("queue[%d]=%d\n", i, queue[i] );
  33. }
  34.  
  35. return 0;
  36. }
  37.  
  38. void enqueue(int value)
  39. {
  40. if(head==(tail+1)%SIZE){
  41. printf("queueは満杯です");
  42. }
  43. else{
  44. queue[tail++] = value;
  45. tail = tail%SIZE;
  46. }
  47. print_q();
  48. }
  49.  
  50. int dequeue(void)
  51. {
  52. int value;
  53. if(head==tail){
  54. printf("queueは空です");
  55. return 0;
  56. }
  57. else{
  58. value = queue[head];
  59. queue[head] = 0;
  60. head++;
  61. head = head%SIZE;
  62.  
  63. }
  64. print_q();
  65. return value;
  66.  
  67. }
  68.  
  69.  
  70.  
  71.  
  72.  
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
queue[0]=1 head=0 tail=1 ,queue[1]=0 head=0 tail=1 ,queue[2]=0 head=0 tail=1 ,queue[3]=0 head=0 tail=1 ,queue[4]=0 head=0 tail=1 ,
------------
queue[0]=1 head=0 tail=2 ,queue[1]=2 head=0 tail=2 ,queue[2]=0 head=0 tail=2 ,queue[3]=0 head=0 tail=2 ,queue[4]=0 head=0 tail=2 ,
------------
queue[0]=0 head=1 tail=2 ,queue[1]=2 head=1 tail=2 ,queue[2]=0 head=1 tail=2 ,queue[3]=0 head=1 tail=2 ,queue[4]=0 head=1 tail=2 ,
------------
queue[0]=0 head=1 tail=3 ,queue[1]=2 head=1 tail=3 ,queue[2]=3 head=1 tail=3 ,queue[3]=0 head=1 tail=3 ,queue[4]=0 head=1 tail=3 ,
------------
queue[0]=0 head=2 tail=3 ,queue[1]=0 head=2 tail=3 ,queue[2]=3 head=2 tail=3 ,queue[3]=0 head=2 tail=3 ,queue[4]=0 head=2 tail=3 ,
------------
queue[0]=0 head=2 tail=4 ,queue[1]=0 head=2 tail=4 ,queue[2]=3 head=2 tail=4 ,queue[3]=4 head=2 tail=4 ,queue[4]=0 head=2 tail=4 ,
------------
queue[0]=0 head=2 tail=0 ,queue[1]=0 head=2 tail=0 ,queue[2]=3 head=2 tail=0 ,queue[3]=4 head=2 tail=0 ,queue[4]=5 head=2 tail=0 ,
------------
queue[0]=0 head=3 tail=0 ,queue[1]=0 head=3 tail=0 ,queue[2]=0 head=3 tail=0 ,queue[3]=4 head=3 tail=0 ,queue[4]=5 head=3 tail=0 ,
------------
queue[0]=6 head=3 tail=1 ,queue[1]=0 head=3 tail=1 ,queue[2]=0 head=3 tail=1 ,queue[3]=4 head=3 tail=1 ,queue[4]=5 head=3 tail=1 ,
------------
queue[0]=6
queue[1]=0
queue[2]=0
queue[3]=4
queue[4]=5