数据结构:用带头循环链表表示队列的问题

 我来答
华源网络
2022-10-09 · TA获得超过5593个赞
知道小有建树答主
回答量:2486
采纳率:100%
帮助的人:146万
展开全部
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:

用带头循环链表表示队列(设队列长度为N)

若只设 头 指针,则出队列和入队列的时间复杂度分别是多少?

若只设 尾 指针,则出队列和入队列的时间复杂度分别是多少?

我的答案:

若只设 头 指针,则出队列O(1);入队列O(N)

若只设 尾 指针,则出队列O(1);入队列O(1)

对吗?

解析:

前提:队列中的结点从队尾插入,从队头删除;队列中的结点的指向是从队头指向队尾,因为是循环链表,则队尾结点的下一个结点是队头。

如果只设头指针,则出列容易,头指针往后移一个就行;入列则要遍历整个队列,确定队尾后再插入,所以出列是O(1),入列是O(n)

如果只设尾指针,则入列时直接插入,出列只须后移一个结点即可找到队头结点,都是常数级的时间耗费,即都是O(1)

一般来说循环队列不用设头指针,只需一个指向尾结点的指针就行了,确定头和尾都很容易。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式