Advertisement
lily09290110

環狀佇列

Jan 24th, 2015
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.24 KB | None | 0 0
  1. #include<stdio.h>
  2. #define max 10
  3.  
  4. int queue[max];
  5. int fornt=-1;
  6. int rear=-1;
  7.  
  8. int endequ(int temp)
  9. {
  10.     if(rear+1==fornt||(rear+1==max&&fornt<=0)) return -1;
  11.     (rear+1==max)&&(rear=-1);
  12.     rear++;
  13.     queue[rear]=temp;
  14. }
  15. int undequ()
  16. {
  17.     if(fornt==rear)return-1;
  18.     (fornt+1==max)&&(fornt=-1);
  19.     fornt++;
  20.     return queue[fornt];
  21. }
  22.  
  23. int main()
  24. {
  25.     int select,temp,loop=1,count=-1;
  26.     while(loop){
  27.         printf("(1)輸入數字\n(2)取出數字\n(3)列印全部\n");
  28.         scanf("%d",&select);
  29.         switch(select)
  30.         {
  31.             case 1:
  32.                 printf("請輸入數字");
  33.                 scanf("%d",&temp);
  34.                 endequ(temp)==-1&&printf("fill\n");
  35.                 count++;
  36.                 break;
  37.             case 2:
  38.                 ((temp=undequ())==-1)?printf("empty\n"):
  39.                 printf("take a number:%d\n",temp);
  40.                 count--;
  41.                 break;
  42.             case 3:
  43.                 if(count<0)printf("empty\n");
  44.                 else
  45.                     for(fornt++;fornt<=rear;fornt++)
  46.                         printf("%d ",queue[fornt]);
  47.                 printf("\n");
  48.                 loop=0;
  49.                 break;
  50.         }
  51.     }
  52.     return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement