1.直接版
//解密qq.队列的使用
#include<stdio.h>
int main()
{
int q[102]={0,6,3,1,7,5,8,9,2,4},head,tail;
int i;
//初始化队列
head=1;
tail=10;//tail指队尾的最后一个元素的后一个位置
while(head<tail){//队列不为空
//打印队首并输出
printf("%d ",q[head]);
//队首出队
head++;
//将新队首放到尾部
q[tail]=q[head];
tail++;
//再将队首出队s
head++;
}
getchar();getchar();
return 0;
}
2.结构体.通用版
//结构体实现队列操作
#include<stdio.h>
struct queue
{
int data[100];//队列的主体,用来存储内容
int head;//队首
int tail;//队尾
} ;
int main()
{
struct queue q;
int i;
//初始化队列
q.head=1;
q.tail=1;
for(i=1;i<=9;i++)
{
//依次向队列插入9个数
scanf("%d",&q.data[q.tail]);
q.tail++;
}
while(q.head<q.tail)//队列不为空
{
//打印队首并出队
printf("%d ",q.data[q.head]);
q.head++;
//将新队首添加到队尾
q.data[q.tail]=q.data[q.head];
q.tail++;
//再将队首出队
q.head++;
}
}
3.STL版
//先进先出
#include<bits/stdc++.h>
using namespace std;
queue <int> q;
//队列的遍打印
void print(){
while(!q.empty()){
printf("%d ",q.front());
q.pop();
}
}
int main()
{ int a;
for(int i=1;i<=9;i++)
{
//依次向队列插入9个数
cin>>a;
q.push(a);
}
/*q.empty(); //判断队列是否为空
q.push(1); //入队 (队尾)
q.pop(); //出队(队头)
q.front(); //找到队头元素
q.size(); //队包含的元素
print();*/
while(!q.empty())//队列不为空
{
//打印队首并出队
printf("%d ",q.front());
q.pop();
//将新队首添加到队尾
q.push(q.front());
//再将队首出队
q.pop();
}
return 0;
}