C 不同类型的链表!

C 不同类型的链表!,c,data-structures,linked-list,C,Data Structures,Linked List,常用的链表类型有哪些 我知道并使用了以下内容: 单链表 双链表 循环清单 您使用过或知道的其他类型的列表是什么?!不是一种真正的链表,但相关的,相当整洁 好的,它要么是一种链表,要么是一组链表,这取决于你对事物的分类方式,但它的特点是O(logn)插入/选择,这对于链表来说是非常好的 我可能会想到一些场景,在这些场景中,能够从列表中的任何元素链接到第一个和最后一个元素会很有用。如果没有其他人纠正我,我断言这称为高性能标记列表,通常使用链表实现,并且仅限制支持的操作类型。是一个链表,其中每个节点都

常用的链表类型有哪些

我知道并使用了以下内容:

  • 单链表
  • 双链表
  • 循环清单
  • 您使用过或知道的其他类型的列表是什么?

    !不是一种真正的链表,但相关的,相当整洁


    好的,它要么是一种链表,要么是一组链表,这取决于你对事物的分类方式,但它的特点是O(logn)插入/选择,这对于链表来说是非常好的

    我可能会想到一些场景,在这些场景中,能够从列表中的任何元素链接到第一个和最后一个元素会很有用。如果没有其他人纠正我,我断言这称为高性能标记列表

    ,通常使用链表实现,并且仅限制支持的操作类型。是一个链表,其中每个节点都包含一个数据值数组。这将提高缓存性能,因为更多的列表元素在内存中是连续的,并且减少了内存开销,因为需要为列表的每个元素存储更少的元数据。

    还有一个

    在多重链接列表中,每个节点包含两个或多个链接字段,每个字段用于以不同顺序(例如,按姓名、部门、出生日期等)连接同一组数据记录。(虽然双链表可视为多重链表的特例,但两个顺序相对的事实导致了更简单、更高效的算法,因此通常将它们视为单独的情况。)

  • 在计算机编程中,展开链表是链表的一种变体,它在每个节点中存储多个元素。它可以显著提高缓存性能,同时减少与存储列表元数据(如引用)相关的内存开销。它与B-树有关维基百科

  • 异或链表是一种数据结构 用于计算机编程。他们 利用按位计算的优势 互斥析取(XOR) 操作,此处表示为⊕, 到 减少存储需求 双链表维基百科


    循环列表可以是单链接的,也可以是双链接的,因此“选项”实际上与链接方向正交,而不是单独的选项。我想说的是,从每个节点维护1到2个额外的链接是一个非常糟糕的主意。特别是因为很容易存储指向列表节点之外的第一个和最后一个元素的指针,并且只需在一个位置更新它们。即使是在纯C语言中(与面向对象语言相反),我也会选择存储两个额外的变量,而不是用冗余数据阻塞链表节点。通常的编程实践也是将指针保持在最后一个节点(尾部)。这种数据结构称为“头尾链表”。双端队列可以基于这样的列表来实现,因此有时这些术语被称为同义词。遗憾的是,高性能标记列表并不是一个高性能列表。sigghh.只是好奇有没有
    未链接的列表
    ?哈哈;)+1@The机器魔术师:它们被称为数组:)@Charmer,是的,Java中有一个
    ArrayList
    。难以置信!!你们太认真了@Charmer:在极客中,有一个技术笑话不是闹着玩的:)跳过列表实际上是一种链表,或者至少是多个链表的混合体和mashup,这取决于你如何看待它。嗯,我一直认为跳过列表是某种奇怪的半树/半列表突变结构。数据结构的本体论不是我的专长。