1
30
单链表 或者 树形结构 . 其思想是,一旦找到结束点(空指针),就不需要特殊情况或“尾随指针”跟随遍历指针。因为您可以将指针解引用到一个指针(它 到最后一个节点的下一个指针!)插入。像这样:
而不是像这样:
注:
对于为单链表生成有效的删除代码也很有用。在任何时候
|
2
7
而指针到指针的方法要简单得多:
|
3
2
我想你是说 doubly-linked lists 其中节点类似于:
|
4
2
我同意关于使用STL容器来处理你的列表脏活的评论。然而,这是堆栈溢出,我们都在这里学习一些东西。
请注意,根据插入是发生在列表的开头、结尾还是中间,必须进行的所有额外检查。与双指针方法相比:
|
5
1
你可能是指一个双链接列表,其中一个指针向前,另一个指针向后。这允许您访问给定节点的下一个和上一个节点,而不必记住遇到的最后一个或两个节点(如在单链表中)。 但我发现的一件事使代码更加 更多 总是 作用于列表中间的节点。 例如,创建空列表:
插入要简单得多,因为您不必关心是在列表的开头还是结尾插入。要在当前点之前插入:
删除也更简单,避免了边缘情况:
警告1:如果你在进行空间仍然很重要的嵌入式编程,这可能不是一个可行的解决方案(尽管现在有些嵌入式环境也相当单调)。
|
Community wiki · C中有哪些耗时的操作? 1 年前 |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |