数据结构:用带头循环链表表示队列的问题
1个回答
展开全部
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
用带头循环链表表示队列(设队列长度为N)
若只设 头 指针,则出队列和入队列的时间复杂度分别是多少?
若只设 尾 指针,则出队列和入队列的时间复杂度分别是多少?
我的答案:
若只设 头 指针,则出队列O(1);入队列O(N)
若只设 尾 指针,则出队列O(1);入队列O(1)
对吗?
解析:
前提:队列中的结点从队尾插入,从队头删除;队列中的结点的指向是从队头指向队尾,因为是循环链表,则队尾结点的下一个结点是队头。
如果只设头指针,则出列容易,头指针往后移一个就行;入列则要遍历整个队列,确定队尾后再插入,所以出列是O(1),入列是O(n)
如果只设尾指针,则入列时直接插入,出列只须后移一个结点即可找到队头结点,都是常数级的时间耗费,即都是O(1)
一般来说循环队列不用设头指针,只需一个指向尾结点的指针就行了,确定头和尾都很容易。
问题描述:
用带头循环链表表示队列(设队列长度为N)
若只设 头 指针,则出队列和入队列的时间复杂度分别是多少?
若只设 尾 指针,则出队列和入队列的时间复杂度分别是多少?
我的答案:
若只设 头 指针,则出队列O(1);入队列O(N)
若只设 尾 指针,则出队列O(1);入队列O(1)
对吗?
解析:
前提:队列中的结点从队尾插入,从队头删除;队列中的结点的指向是从队头指向队尾,因为是循环链表,则队尾结点的下一个结点是队头。
如果只设头指针,则出列容易,头指针往后移一个就行;入列则要遍历整个队列,确定队尾后再插入,所以出列是O(1),入列是O(n)
如果只设尾指针,则入列时直接插入,出列只须后移一个结点即可找到队头结点,都是常数级的时间耗费,即都是O(1)
一般来说循环队列不用设头指针,只需一个指向尾结点的指针就行了,确定头和尾都很容易。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询