双端链表和双向链表的区别

Posted

技术标签:

【中文标题】双端链表和双向链表的区别【英文标题】:difference between double-ended linked lists and doubly-linked list 【发布时间】:2015-04-04 11:09:36 【问题描述】:

我不明白双端列表和双向链表之间的区别。

两者的主要区别是什么?

【问题讨论】:

【参考方案1】:

双向链表是一个列表,其中的元素都有指向列表中前后元素的指针。

根据我的理解,双端列表与双端队列相同。这是一个队列,您可以在其中添加和删除顶部和底部的项目。

【讨论】:

【参考方案2】:

在双向链表中,每个节点都有两个指针。一个朝向其下一个节点,另一个朝向其前一个节点。

在双端链表中,每个节点只有一个指向下一个节点的指针。它与单端链表的不同之处在于,它不是只有一个“头”节点,而是包含两个这种类型的指针(“first”和“last”),因此有人能够从两端向列表中插入元素它。

(最后一张图不太清楚,但抓住了两端的点。)

【讨论】:

谢谢大家,任何其他差异将不胜感激 没有其他本质区别。【参考方案3】:

单向链接它是单向的,它使用更少的内存,插入的复杂度是 O(n)。虽然双链是双向的(下一个和上一个),但它比单链表使用更多的内存,插入和删除的复杂度为 O(n)。

【讨论】:

【参考方案4】:

双端列表类似于普通的链表,但它有一个附加特性:对最后一个链接的引用以及对第一个链接的引用。 在双向链表中,每个链接都有两个对其他链接的引用,而不是一个。第一个是到下一个链接,就像在普通列表中一样。第二个是上一个链接。

【讨论】:

【参考方案5】:

在这两个列表中,有两个来自前端和后端的指针。但是双端列表不能向后移动,只能向前移动,而双向链表可以向前和向后移动。

【讨论】:

以上是关于双端链表和双向链表的区别的主要内容,如果未能解决你的问题,请参考以下文章

数据结构01- 单链表双端链表双向链表无序链表有序链表

双向链表--Java实现

双向链表的实现(双向链表与单向链表的简单区别联系和实现)

双向链表的实现(双向链表与单向链表的简单区别联系和实现)

基于双向链表的双端队列

双向链表的原理与实现