首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于双向链表

关于双向链表
EN

Stack Overflow用户
提问于 2010-05-30 15:45:00
回答 5查看 506关注 0票数 0

我想知道“头”和“尾”是否像其他节点一样存储任何值??谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-05-30 16:09:10

取决于链表的具体实现。这两种方法都可以工作,但额外的“头/尾”元素极大地简化了许多操作的实现,如插入/删除(因为您总是可以确保会有下一个/前一个元素,从而省去了大量的条件代码来处理列表的开始/结束)。

由于您将问题标记为Java,因此我建议您查看java.util.LinkedList的JDK源代码。您会发现,在这个特定的实现中,head和tail并没有引用元素。

如果您真的想了解额外的头/尾节点的优势,那么您可以自己实现一个简单的双向链表,亲身体验一下insert/remove方法的复杂性差异,这可能是最有指导意义的。

在其他允许指针运算的语言中,通常只有一个额外的头节点,它同时也充当尾节点。

票数 4
EN

Stack Overflow用户

发布于 2010-05-30 15:47:20

头节点对下一个节点有一个引用,对上一个节点有一个空引用。

尾节点对上一个节点有一个引用,对下一个完成的节点有一个空引用。

票数 4
EN

Stack Overflow用户

发布于 2010-05-30 15:55:30

头节点和尾节点应该与任何其他节点相同。唯一的区别是,head没有对上一个节点的引用,tail也没有对下一个节点的引用。

除非您的实现是一个循环链表,其中head引用tail作为上一个节点,tail引用head作为下一个节点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2937895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档