【发布时间】:2011-01-24 00:54:43
【问题描述】:
常用的链表有哪些不同类型?
我知道并使用过以下内容:
- 单链表
- 双向链表
- 循环列表
您使用过或知道的其他类型的列表有哪些?
【问题讨论】:
-
循环列表既可以单链接也可以双链接,因此“选项”实际上与链接方向性正交,而不是单独的选项。
标签: c data-structures linked-list
常用的链表有哪些不同类型?
我知道并使用过以下内容:
您使用过或知道的其他类型的列表有哪些?
【问题讨论】:
标签: c data-structures linked-list
还有一个multiply-linked list。
在多重链表中,每个节点包含两个或多个链接字段,每个字段用于以不同的顺序(例如,按姓名、按部门、按出生日期等)连接同一组数据记录.)。 (虽然双向链表可以看作是多重链表的特例,但由于两个顺序相反的事实导致算法更简单、更有效,因此通常将它们视为单独的情况。)
【讨论】:
Unlinked List?哈哈 ;) +1
ArrayList。
Skip lists! 不是真正的链表类型,而是相关的,而且非常整洁。
好的,它要么是一种链表,要么是一组链表,这取决于您对事物进行分类的方式,但它具有 O(log N) 插入/选择功能,这对于链表来说非常棒。
【讨论】:
我可能会想出能够从列表中的任何元素链接到第一个和最后一个元素的场景。如果没有人纠正我,我断言这被称为 High-Performance-Mark-List。
【讨论】:
在计算机编程中,展开链表是链表的一种变体,它在每个节点中存储多个元素。它可以显着提高缓存性能,同时减少与存储列表元数据(如引用)相关的内存开销。它与B树有关。 - 维基百科
异或链表是一种数据结构 用于计算机编程。他们 利用按位 异或(XOR) 操作,这里用⊕表示,到 减少存储需求 双向链表。 - 维基百科
【讨论】:
stacks 和queues 通常都是使用链表实现的,只是限制了支持的操作类型。 unrolled linked list 是一个链表,其中每个节点都包含一组数据值。这会提高缓存性能,因为更多的列表元素在内存中是连续的,并且减少了内存开销,因为需要为列表的每个元素存储更少的元数据。
【讨论】: