//简单的队列问题,QQ号转化
#include<stdio.h>
int main()
{
int a[102]={0,6,3,1,7,5,8,9,2,4},head,tail;//首位是0,因为head赋值了1,习惯从a[1]开始用
head=1;
tail=10;
while(head<tail){//防止是空队列
printf("%d ",a[head]);
head++;
a[tail]=a[head];
head++;
tail++;
}
return 0;
}
这里再和书一样写一下结构体的代码吧:
//结构体队列促进理解
#include<stdio.h>
struct number{
int data[101];
int head;
int tail;
};
int main()
{
struct number a;
a.head=1;
a.tail=1;
int i;
for(i=1;i<10;i++){
scanf("%d",&a.data[a.tail]);
a.tail++;//巧妙地让tail放在了最后一位后面的位置
}
while(a.head<a.tail){
printf("%d ",a.data[a.head]);
a.head++;
a.data[a.tail]=a.data[a.head];//使删去后的下一位挪到最后面
a.tail++;//尾巴往后移一位
a.head++;//出现新的头
}
return 0;
}