循环队列
1 #include "stdio.h" 2 #include "string.h" 3 int que[100];//定义队列 4 char Ask[100];//定义询问串 5 void pop(int *front,int *top) 6 { 7 if(*front == *top){ 8 printf("Empty que!\n"); 9 return; 10 } 11 *front = (*front + 1) % 5; 12 } 13 void push(int *front,int *top,int val) 14 { 15 if((*top + 1) % 5 == *front){//判断队列是否满了 16 printf("Que is full!\n"); 17 return; 18 } 19 *top = (*top + 1) % 5;//当top为最后一个位置时回到0位置 20 que[*top] = val;//入队 21 } 22 int main() 23 { 24 int k; 25 int front = 0;//队首 26 int top = 0;//quit()退出询问,pop()出队,push()入队 27 while(1){ 28 printf("Ask:"); 29 scanf("%s",Ask);//输入询问串 30 getchar();//接收不必要的换行 31 if(strcmp("quit()",Ask) == 0) 32 break; 33 else if(strcmp("pop()",Ask) == 0) 34 pop(&front,&top); 35 else{ 36 scanf("%d",&k); 37 push(&front,&top,k); 38 } 39 } 40 while(front != top){//输出队列 41 front = (front + 1) % 5; 42 printf("%d\n",que[front]); 43 } 44 return 0; 45 }
本文来自博客园,作者:{scanner},转载请注明原文链接:{https://home.cnblogs.com/u/scannerkk/}

浙公网安备 33010602011771号