# include<iostream>
using namespace std;
struct queue //队列的结构体
{
int a[100];//定义一个数组用来存储队列中的数据
int head;//队首
int tail;//队尾
};
int main()
{
queue q;
int i;
q.head = 0;//初始化队列,队列为空
q.tail = 0;
for(i = 0;i < 9;i ++)
{
cin >> q.a[q.tail];
q.tail++;
}
while(q.head < q.tail) //当数组队首小于队尾时继续即队列不为空
{
printf("%d ",q.a[q.head]);//输出队首并让队首出队
q.head++;
q.a[q.tail] = q.a[q.head];//讲新的队首添加到队尾
q.tail ++;
q.head ++;//再将队首出队
}
system("pause");
return 0;
}
例子:本题输入:1 2 3 4 5 6 7 8 9
输出: 1 3 5 7 9 4 8 6 2
队列是一种特 殊的线性结构,它只允许在队列的首部(head)进行删除操作,这称为“出队”,而在队列 的尾部(tail)进行插入操作,这称为“入队”。