综艺
循环队列(循环队列进队与出队操作及算法)

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

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

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

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

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

一、循环队列示操作图文

(1)空循环队列示例图

(2)入队循环队列示例图

(3)队满循环队列示例图

二、循环队列算法

(1)入队列算法

int InsertQueue(sqQueue &qu,int x){if((qu.rear+1)%maxSize==qu.front)return 0;qu.rear=(qu.rear+1)%maxSiezequ.data[qu.rear]=x;return 1;}

(2)出队列算法

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;}

顶一下()     踩一下()

热门推荐

发表评论
0评