循环队列中进队与出队算法详细图文

循环队列中进队与出队算法详细图文

队列是插入位置和删除位置受限制的线性表,它只能在一端进行插入,而另一端进行删除元素,其只允许插入的一端称为队尾,只允许删除的一端称为队首。

由于队列中的元素在插入与删除时,两端的都要变化,所以需要两个指针,一个是front指向队首元素,另一个是rear指向队尾的下一个地址。有的课本上是front指针指向前一个地址,rear指向队尾元素,这都是为了算法的方便而设定的。

队列的两个特点:先进先出和有序性。

队列有两种存储表示:可用链表和顺序表来存储队列。

队列按存储结构分为两种:顺序队列(循环队列)和链式队列。

一、循环队列示意图

1.空循环队列示例:

2.入队循环队列示例:

3.队满循环队列示例:

二、循环队列代码

a.入队列代码

int InsertQueue(sqQueue &qu,int x)

{

if((qu.rear+1)%maxSize==qu.front)

return 0;

qu.rear=(qu.rear+1)%maxSieze

qu.data[qu.rear]=x;

return 1;

}

b.出队列代码

int deleteQueue(sqQueue &qu,int &x)

{

if(qu.front==qu.rear)

return 0;

x=qu.data[qu.front];//先保存队头元素

qu.front=(qu.front+1)%maxSize;

return 1;

}

相关推荐

电脑尺寸大小在哪里看 3个方法轻松搞定
365bet在线手机版

电脑尺寸大小在哪里看 3个方法轻松搞定

📅 07-02 👁️ 1420
苹果手机怎么连接电脑
365bet在线手机版

苹果手机怎么连接电脑

📅 06-28 👁️ 6431
男人都应该佩戴手表吗?手表对男人意味着什么?看完你便知晓!
苹果手机安装微信详细指南
365bet在线手机版

苹果手机安装微信详细指南

📅 07-07 👁️ 3364
如何去掉移动硬盘上的分区 怎样取消移动硬盘的分区?
仓鼠的木屑怎么做?教你简单易行的制作方法与技巧
貂蝉加强
365bet在线手机版

貂蝉加强

📅 07-01 👁️ 8904
冈萨洛·格德斯Goncalo Manuel Ganchinho Guedes资料
亚洲365世界杯

冈萨洛·格德斯Goncalo Manuel Ganchinho Guedes资料

📅 07-07 👁️ 9308
服务指引
beat365老版本

服务指引

📅 07-03 👁️ 1511