java - 吝啬的链接结构和节点?

标签 java data-structures collections linked-list nodes

我对编程相当陌生,并且不熟悉 Java 中的某些术语和引用资料。虽然我相信我已经有效地利用了谷歌,但我发现请你们帮我简化它会帮助我更有效地工作。

我的问题是,节点具体是什么?它们有什么用?此外,吝啬链接结构有什么用?

最佳答案

链接结构是一种数据结构,由一堆较小的元素(称为单元节点)组成,这些元素链接在一起形成更大的结构。这类似于分子的形成方式 - 有一堆较小的原子,然后将它们连接在一起形成分子。许多重要的数据结构,例如链表或二叉搜索树 - 都是链接结构。

链接结构通常与基于数组的结构形成对比。数组具有固定的大小并且是“刚性的” - 您无法有效地将它们分成更小的部分 - 因此通常增大或缩小基于数组的结构需要时间。由较小的部分组成的链接结构可以很容易地分成更小的部分或由新的部分构建。例如,要将一个元素追加到数组中,您可能必须分配一个巨大的新数组,复制所有旧元素,然后追加新元素。使用链表或链接结构,您可以在末尾添加另一部分,这会更有效。类似地,如果您有一个已排序的数组并且需要插入一个元素,则可能必须将数组中的所有其他元素洗牌,因为无法将某些内容“拼接”到数组中。如果排序后的序列存储在二叉搜索树中,则可以将新元素添加到适当的位置,而无需移动任何其他元素,这使得插入更加高效。

我不相信有什么叫做“吝啬链表”。我认为你的意思是链接列表,这是一个链接列表,其中每个单元格(片段)仅存储一个链接,通常指向序列中的下一个元素。这使得在列表中从一个元素向前扫描到下一个元素变得很容易,但很难备份列表中的一个位置。

老实说,没有简单的方法可以枚举您想要使用链接结构的所有情况,因为很多结构都是链接结构。我建议阅读一本有关基本数据类型(列表、堆栈、队列、树等)的书来了解更多相关信息。我刚刚完成了专门针对这个主题的为期四分之一的编程类(class)的教学,我怀疑是否有可能将其浓缩为一个单一的答案。 :-)

希望这有帮助!

关于java - 吝啬的链接结构和节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17205218/

相关文章:

java - Spring 集成: Adding additional Headers parameters to HTTP outbound request.

java - 选择排序时间

java - 字符串常量池(JDK 6)中的 "a"与 'new String("和 ")' 与 'new String("与 ").intern()'

java - 测试游戏算法速度

Java:在修改集合内容时迭代集合

c++ - 二叉树的最小高度?

javascript - 在 Javascript 中从堆栈读取元素而不丢失它们

java - 如何随机化列表中的条目,以便用户每次都能看到不同的 DailyPrayer?

java - 当文件中存在重复的键值对时,如何读取属性文件?

java - 为什么 HashMap 不能是静态的..?