队列是一种先进先出的线性结构
队列只允许在队列的首部进行删除操作,称为出队
在队列尾部进行增加,称为入队
一条队列有两个重要的属性head和tail,即队首和队尾


1
#include<stdio.h>

我们常常将队列的属性封装成一个结构体
head表示队首,tail表示队尾

1
2
3
4
5
6
struct queue
{
int data[100];//队列的内容,不一定是整形
int head;
int tail;
};


向队列中填入信息
q.tail和q.head都是表示位置
我们通过tail++来实现队列的增加,被称为入队


1
2
3
4
5
6
7
8
9
10
11
int main()
{
struct queue q;
int i;
q.head=1;
q.tail=1;
for(i=1;i<=9;i++)
{
scanf("%d",&q.data[q.tail]);
q.tail++;
}

因为队列在增加后多了一个tail++
所以当q.data[q.tail]为空,从head到tail之前都为队列成员
通过对head++将队列前面的成员排除出队列,称为出队
也就是将其排出head与tail之间的队列


1
2
3
4
5
6
while(q.head<q.tail)
{
printf("%d",q.data[q.head]);
q.head++;
}
}

最后更新: 2018年01月23日 10:04

原始链接: http://drac0nids.top/2017/09/02/队列/

× 请我吃糖~
打赏二维码