/*设从键盘输入一整数序列a1,a2,a3...an,当ai>0时,ai进队;当ai<0时,将队首元素出队;当ai=0时,表示输入结束*/
#include<stdio.h>
#define QueueSize 100
typedef int ElemType;
typedef struct
{
ElemType data[QueueSize];
int front;
int rear;
}SqQueue;
void main()
{
ElemType a, x;
SqQueue qu;
qu.rear = qu.front = 0;
printf("请输入一段数队列(以0结束):");
scanf("%d", &a);
while (a != 0) {
if (a > 0) {
if((qu.rear+1)%QueueSize==qu.front) // 判断队列是否为空
{
printf("队列已满\n"); return;
}
qu.data[qu.rear] = a; //a入队列
qu.rear = (qu.rear + 1) % QueueSize;
}
else //当a<0时,表头元素出队列
{
if(qu.rear==qu.front) //判断队列是否为空
{
printf("队列已空\n"); return;
}
x = qu.data[qu.front]; //取队头元素放入x
qu.front = (qu.front + 1) % QueueSize; //修改队头指针
printf("%d出队列\n", x);
}
scanf("%d", &a);
}
}
/*设从键盘输入一整数序列a1,a2,a3...an,当ai>0时,ai进队;当ai<0时,将队首元素出队;当ai=0时,表示输入结束*/
于 2022-06-04 16:30:32 首次发布