若循环队列中rear在前一个结点,front在后一个结点如何进行循环?

1个回答
展开全部
摘要 循环队列有两种存储方式:顺序存储和链式存储,如果是链式存储,front和rear当然要定义成真正的指针类型。
咨询记录 · 回答于2022-10-22
若循环队列中rear在前一个结点,front在后一个结点如何进行循环?
循环队列有两种存储方式:顺序存储和链式存储,如果是链式存储,front和rear当然要定义成真正的指针类型。
抱歉我不太理解,可否详细说一下呢?
但是如果是顺序存储,队列实际上是一个数组的结构,用数组来实现循环队列,front和rear就是一个索引,所以会是一个int类型的,你看看这段内容的上下文,应该是循环队列的顺序存储。要求front指向队头,rear指向队尾,那么初始化front=0,rear究竟是0还是n-1,不妨假设rear=0,那么很明显此时已经有一个元素入队了,在a[0]的位置,此时front=rear=0,与初始为空矛盾.所以rear=(0-1)%n=n-1。简介循环队列就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列结构中,当存储空间的最后一个位置已被使用而再要进入队运算时,只需要存储空间的第一个位置空闲,便可将元素加入到第一个位置,即将存储空间的第一个位置作为队尾。循环队列可以更简单防止伪溢出的发生,但队列大小是固定的。
已赞过
你对这个回答的评价是?
评论 收起
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消