文章目录
算法基础入门
第二章 栈、队列、链表
2.1 队列
队列是一种特殊的线性结构,它只许在队列的首部进行删除操作,称为‘出队’,在队列的尾部进行插入操作,称为‘入队’。队列无元素时,称为‘空队列’。队列遵循‘先进先出’原则。
例:head和tail两个整型变量分别用来记录队列的队首和队列的尾部的下一个位置
在队首删除一个数的操作就是head++;
对队尾增加一个数的操作就是q[tail]=x;tail++;
#include <stdio.h>
struct queue
{
int data[100]; //队列主体,存储内容
int head; //队首
int tail; //队尾
};
int main()
{
struct queue q;
q.head = 1;
q.tail = 1;
int i;
for(i = 0; i < 10; i++)
{
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++; //队首出队
}