我对编程相当陌生,并且不熟悉Java中的某些术语和参考。虽然我相信我已经有效地利用谷歌,但我发现,要求你们对我的愚蠢行为会更有效地帮助我。吝啬链接结构和节点?
我的问题是,具体是什么节点?它们用于什么?此外,什么是吝啬链接结构用于?
我对编程相当陌生,并且不熟悉Java中的某些术语和参考。虽然我相信我已经有效地利用谷歌,但我发现,要求你们对我的愚蠢行为会更有效地帮助我。吝啬链接结构和节点?
我的问题是,具体是什么节点?它们用于什么?此外,什么是吝啬链接结构用于?
甲联结构是一种数据结构,它由一个小的一束元件中的(称为细胞或节点),其连接在一起以形成更大的结构。这与分子如何形成相似 - 你有一堆小的原子,然后连接在一起形成一个分子。许多重要的数据结构,如链接列表或二叉搜索树 - 都是链接结构。
链接结构通常与基于数组的结构形成对比。数组具有固定的大小,并且是“刚性的” - 您无法将它们有效地分解成更小的片段 - 因此通常基于阵列的结构的增长或收缩需要时间。由较小的部分组成的连接结构可以很容易地分成较小的部分或由新的部分组成。例如,要将一个元素附加到数组中,您可能必须分配一个巨大的新数组,复制所有旧元素,然后追加新元素。使用链接列表或链接结构,您可以在结尾添加另一部分,这可以更有效。同样的,如果你有一个有序数组并且需要插入一个元素,你可能不得不将所有其他数组中的元素进行混洗,因为没有办法将某些东西“拼接”到数组中。如果排序后的序列存储在二叉搜索树中,则可以将新元素添加到适当的位置,而无需移动任何其他元素,这使插入效率更高。
我不相信有什么叫做“吝啬的链表”。我想你的意思是单独链接列表,这是一个链接列表,其中每个单元格(片段)只存储一个链接,通常是序列中的下一个元素。这样可以很容易地从列表中向前扫描一个元素,但却很难在列表中备份一个位置。
很诚实,没有简单的方法来枚举所有您想要使用链接结构的情况,因为如此多的结构是链接结构。我会建议拿起一本关于基本数据类型(列表,堆栈,队列,树木等)的书来了解更多关于此的信息。我刚刚完成了一个专门针对这个话题的四分之一课程编程课,我怀疑是否可以凝聚成一个单一的答案。 :-)
希望这有助于!
哇,正是我所期待的,谢谢! :) – user201535
实质上,节点是用于构建数据的基本单位。节点可以很容易地分成更小的部分并构建,以创建特定的结构和序列。
节点是构建数据结构(如链接列表和树)的基本单位。 – Craig
@ user201535,你的问题很好回答。请花时间接受答案,并考虑积极 – Jayan
我不知道如何“upvote”或“接受答案”:\ – user201535