c - 如何知道何时使用单链表或接地头链表

标签 c data-structures linked-list

给定一个问题,如何分析哪个更好?我知道每一种是什么,但我不知道何时使用或何时不使用的区别。

最佳答案

大多数单链表是 grounded header linked lists ,其中列表中的最后一个元素有一个空指针作为“下一个”指针。有时,人们会使用循环链表,但这是需要特殊术语的特殊情况。

请注意,链表中可能有一个循环(不一定返回到第一个节点),在这种情况下,它不会是一个接地链表,并且您需要特殊的代码来发现是否存在循环。您可以将一个或多个尾部链接到此类链表的循环中。

A    D              E         B
@--->@--->@--->@--->@<---@<---@
     ^              |
     |              v    C
     @<---@<---@<---@<---@
     G              F

A、B 和 C 中的每一个都是链表的开始,最终以循环 D、E、F、G 结束。但是,这样的链表是异常的 - 它们是不寻常的并且通常是不受欢迎的,并且通常如果创建了这样的列表,则表明存在错误。

除非您有充分的理由不这样做,否则请使用接地链表。

关于c - 如何知道何时使用单链表或接地头链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47403919/

相关文章:

c - 本链表程序回顾

c - 链接器脚本错误: section overlap

c++ - 如何知道磁盘是基本磁盘还是动态磁盘?

Python数据结构索引从1开始而不是0?

java - 更快的 contains() 操作的数据结构?

arrays - 链表是 ADT 还是数据结构,或者两者兼而有之?

c - 如何在物体移动时改变图片

c - 对于冒泡排序算法,每次传入 c 后如何打印数组?

javascript - ngram 的数据结构

c - 如何从链表的尾部弹出元素?