0
点赞
收藏
分享

微信扫一扫

队列的顺序存储

DT_M 2022-03-20 阅读 69

大菜笔记录一下自己的复习进度,写一些自己的理解......

队列的顺序存储类型:

初始化队列:

判断队列是否为空:

入队操作:入队操作之前,应先判断队列是否已满(即判断是否还有空闲空间留给新元素使用)

if((Q.rear+1)%MaxSize==Q.front)

此语句用于判断队列是否已满,由于Q.front==Q.rear这句语句已经被用于判断队列是否为空,所以判断队列是否已满不能使用此举,所以使用上句进行判断,即当前rear指针指向位置的下一个位置与front指针指向的位置相同,由于我们在设定rear是原本就是让rear当前指向的是下一个等待插入新元素的位置,所以这种方法会浪费掉一个空间。

Q.rear=(Q.rear+1)%MaxSize;

每一次插入操作都会进行一次,当rear指针小于9时,执行这步操作只会使rear照常后移一位,而当rear为9时进行这一步操作,即Q.rear=(9+1)%10=0; 那么rear就会指向data[0],从而实际上实现了队列的循环。(前提是头指针不在data0,即之前有数据出队)

举报

相关推荐

0 条评论