fork download
  1. #define SIZE 5
  2. int queue[SIZE];
  3. int head, tail,i;
  4.  
  5. void enqueue(int value);
  6. int dequeue(void);
  7.  
  8. int main(void)
  9. {
  10. head = tail = 0;
  11. int data;
  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( head == (tail+1)%SIZE ){
  32. printf("キューは満杯で入りませんでした\n");
  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. queue[head]=0;
  47. value = queue[head++];
  48. }
  49. head = head % SIZE;
  50. return value;
  51. }
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
queue[0]=6
queue[1]=0
queue[2]=0
queue[3]=4
queue[4]=5