什么是拉链,它与树状结构有什么关系?


15

我正在阅读LYAH中的一章,这对我来说真的没有意义。我知道拉链可以任意穿过树状结构,但是我需要对此进行一些说明。另外,拉链可以推广到任何数据结构吗?


3
尽管工作概括拉链涉及相当多的技术机制,但这对于计算机科学可能更合适。
戴夫·克拉克

6
拉链是您应该始终保持闭合的东西,尤其是在穿过树木时。
Andrej Bauer

Answers:


14

通常,拉链是其中带有孔的数据结构。拉链用于遍历/操纵数据结构,并且该孔对应于遍历的当前焦点。通常,正在考虑的数据结构中的一个元素,因此具有(列表)拉链和列表,或(树)拉链和树。拉链允许程序员高效地在数据结构中移动,甚至替换焦点处的元素。拉链和焦点中的元素对满足以下约束:将元素放在焦点中的孔中会得到原始数据结构。

可以将拉链概括为任意归纳数据类型。可以按类型索引的方式定义此概念(请参阅类型索引的数据类型)。它们还与数据结构的派生概念有关,并且已从类别理论的角度进行了研究。


2

拉链是一般一双东西:它是一个结构上带有一个孔,一个焦点,代表在哪里,你是结构,具有共同的路径,记录你是怎么到焦点。(这条路径是LYAH的面包屑痕迹。)

路径是您实际对结构应用更改的方式:“下移,左移,增加值”。此时,通过反复应用“向上”(go_upHuet的论文中),您可以追溯您的步骤并最终得到原始结构的新的,变异的副本。

实际上,它们可以概括为其他结构:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.