双端链表和双向链表的区别
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】:在这两个列表中,有两个来自前端和后端的指针。但是双端列表不能向后移动,只能向前移动,而双向链表可以向前和向后移动。
【讨论】:
以上是关于双端链表和双向链表的区别的主要内容,如果未能解决你的问题,请参考以下文章