c - 请有人帮我解释链表吗?

标签 c linked-list

我已经尝试了很多学习链表。但是我所有的努力都白费了。请有人可以通过提供他/她自己的代码来帮助我理解链表吗?在此先感谢。

最佳答案

链表只是一个元素列表(通常称为节点),其中每个节点都有指向下一个节点的引用(或指针,在 C 中):

http://img837.imageshack.us/img837/5613/ll1s.png

您可以通过指向第一个节点(“头”)的指针,并让最后一个节点指向 null

来跟踪列表

alt text

每个元素都指向下一个和上一个节点的链表称为双向链表。

alt text

通过遵循这些引用,您可以遍历列表并获取任何节点。

与数组相比,链表的一个共同优点是您可以在 O(1)(常数)时间内插入和删除元素。缺点是你有 O(N) 随机访问。

参见 Wikipedia了解更多。

关于c - 请有人帮我解释链表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3538560/

相关文章:

c - 删除在c中通过引用传递的节点

algorithm - 给定一个数字链表。交换每 2 个相邻链接

c - 如何防止我的程序出现此段错误(核心转储)?

C - 二叉搜索树的初始插入为 NULL

c - 指向分配给二维数组的指针的指针,指向错误的地址

java - 递归地反转Java中的链表

c++ - 使用链表插入排序的段错误

c - 在 C 中使用 strtok()

c++ - 添加printf语句时NULL指针异常消失

java - 如何获取从最后一个元素开始的前向迭代器