@ghostfn1
2016-07-23T15:45:48.000000Z
字数 572
阅读 1711
C++
算法
Update Time:160723 Afternoon Saturday.
队列是一种特殊的线性结构,只允许在队列的首部(head)进行删除操作,称为“出队”,在尾部(tail)只允许进行插入操作,称为“入队”。
先将队列的三个基本元素封装为一个结构体类型,队列的主体为data[100],引入整型变量head、tail来记录队列的队首、队尾。再定义结构体变量q,进行一系列的队列操作。
代码如下[1]:
#include <stdio.h>
struct queue
{
int data[100];
int head;
int tail;
};
int main()
{
struct queue q;
int i;
//Initialization
q.head=1;
q.tail=1;
for(i=1;i<=9;i++)
{
scanf("%d",&q.data[q.tail]);
q.tail++;
}
while(q.head<q.tail)
{
//printf head
printf("%d ",q.data[q.head]);
q.head++;
q.data[q.tail]=q.data[q.head];
q.tail++;
q.head++;
}
getchar();getchar();
return 0;
}
如:
输入:
1 2 3 4 5 6 7 8 9
结果:
1 3 5 7 9 4 8 6 2