吝啬的链接结构和节点?

时间:2013-06-20 04:22:07

标签: java data-structures collections linked-list nodes

我对编程很新,不熟悉Java中的某些术语和参考。虽然我相信我已经有效地利用了谷歌,但我发现要求你们为我愚蠢地帮助我更有效率。

我的问题是,具体是什么节点?它们用于什么?另外,Stingy Linked Structures用于什么?

1 个答案:

答案 0 :(得分:4)

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

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

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

老实说,没有简单的方法来枚举你想要使用链接结构的所有情况,因为很多结构都是链接结构。我建议拿一本关于基本数据类型(列表,堆栈,队列,树等)的书来了解更多相关信息。我刚刚完成了一个专门讨论这个主题的长达四分之一的编程课程,我怀疑是否可以将其简化为一个SO答案。 : - )

希望这有帮助!