数组充当队列
队列简介:队列就是一个先入队就先出队的链性表,
有固定的入口(队尾),也有固定的出口(队头)。
数组充当队列的原因:
1.队列只有两个口,出入不方便。
2.先进先出,如果数字或字符出队后再进队,原队列的排序会被打乱。
3.队列没有二维的
具体操作
1.定义一个数组q[m],充当队列,此时m-1为队列上限(从1开始记)
2.定义两个变量,head,tail作为队头,队尾,则head++为出队,tail++为入队。
假溢出
这里举一个假溢出的示意处。意思是要执行入队操作。却已经达到上限,但队列并没有满。
解决:
使数组到 ‘m-1’ 位时再从 ‘1’ 位入队,我们称其为循环队
举个栗子 例子
tail++;
if(tail==n+1)
{
tail=0;
q[tail++]=x;
}
if(tail==head)
{
break;
}
具体操作(承上2点):
3.循环:
int n;
int head=0,tail=1;
int q[n];
while(head<tail)
{
head++;
if(不满足题目条件)//当然这里也可以写满足题目条件
continue;
满足题目后的操作;
}