某带链的队列初始状态为front=rear=null。经过一系列正常的入队与退队操作后,front=rear=10

。该队列中的元素个数为()A)1b)0C)1或0D)不确定... 。该队列中的元素个数为( )
A)1 b)0 C)1或0 D)不确定
展开
 我来答
娜子聊剧
推荐于2019-08-21 · TA获得超过8578个赞
知道小有建树答主
回答量:420
采纳率:77%
帮助的人:43.7万
展开全部

带链的队列,

带链队列为空时,front = rear= NULL

插入第1个元素时,rear+1 =1,front+1 = 1

插入第2个元素时,rear+1 =2,front不变

删除第2个元素时,front+1 = 2,rear=2,即 front = rear= 2

而带链队列中还剩有1个元素 。

拓展资料

链式栈是一种数据存储结构,可以通过单链表的方式来实现,使用链式栈的优点在于它能够克服用数组实现的顺序栈空间利用率不高的特点,但是需要为每个栈元素分配额外的指针空间用来存放指针域。

介绍

栈是只能在某一端插入和删除的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底(push),最后的数据在栈顶(top),需要读数据的时候从栈顶开始弹出数据(top)最后一个数据被第一个读出来。链式栈中的元素以Node的形式存储,节点Node中存有此节点存于栈中的元素以及指向下个节点的指针。链式栈的数据成员只用保存指向栈顶节点的指针 *top_node。

顺序栈的实现在于使用了数组这个基本数据结构,数组中的元素在内存中的存储位置是连续的,且编译器要求我们在编译期就要确定数组的大小,这样对内存的使用效率并不高,一来无法避免因数组空间用光而引起的溢出问题,二在系统将内存分配给数组后,则这些内存对于其他任务就不可用;而对于链栈而言,使用了链表来实现栈,链表中的元素存储在不连续的地址,由于是动态申请内存,所以我们可以以非常小的内存空间开始,另外当某个项不使用时也可将内存返还给系统。 

资料来源:百度百科:链式栈



光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
_277282419
2017-03-09 · TA获得超过631个赞
知道小有建树答主
回答量:227
采纳率:100%
帮助的人:126万
展开全部

你说的应该是循环队列吧?

那么要是循环队列的话那么这个题目的答案就是:D

不确定, 对没有错。排除其他可以判断的可能,就是题目中提供的条件是不足以确定此时队列中的元素个数的,因为有可能是(0个)或者(队列满了) 如果front=rear 就意味着两种可能给你上个图片。可以把图片保存到电脑中放大看清楚一点,其实这个不难吧?  

遇到这种问题画个图就好了

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友58903c5
2017-08-12 · TA获得超过207个赞
知道答主
回答量:12
采纳率:0%
帮助的人:4091
展开全部
答案应该是A。
前面那个答主说的是不带链的循环队列吧-。-
往队列的队尾插入一个元素为入队,从队列的排头删除一个元素称为退队。初始时 front=rear=0 , front 总是指向队头元素的前一位置,入队一次 rear+1 ,退队一次 front+1 。队列队头队尾指针相同时队列为空。
而带链的队列,由于每个元素都包含一个指针域指向下一个元素,当带链队列为空时 front=rear=Null ,插入第 1 个元素时, rear+1 指向该元素, front+1 也指向该元素,插入第 2 个元素时 rear+1 , front 不变,删除 1 个元素时 front+1 。即 front=rear 不为空时带链的队列中只有一个元素。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
坦然还俊俏灬君子兰5
2018-03-07
知道答主
回答量:1
采纳率:0%
帮助的人:887
展开全部
a
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

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

说明

0/200

提交
取消

辅 助

模 式