我需要一个解决方案,其中我有一个"主"列表/数组,其中有许多按顺序排序的链接子,每个子表示父列表的子段。它类似于"展开链表"模式,但是这里段列表的大小应该是动态的。
在这里我将进一步解释。我想知道这种数据结构/模式是否有一个既定的术语(以与"图","二叉树"等相同的方式),这将有助于我进一步调查,试图找到最佳实现。
假设我们有一个"主"列表,大小为10个项目,0-9,并有三个子列表a, b和c,以以下方式表示主列表的子段:
"master" -------------------
0-9 0 1 2 3 4 5 6 7 8 9
===== ========= ===
"children" a b c
0-2 3-7 8-9
理想情况下,解决方案应该允许
- 允许主列表创建和调整其子列表的子段大小(取决于连接到主列表数据项内容的规则)
- 子节点改变子段大小,导致被链接的兄弟节点相应地调整其大小/位置
- 处理与主尺寸相比的总子尺寸不足和溢出
任何博客,文章,代码片段等解决这样的事情将是很大的帮助!(我的解决方案将在php和as3中创建,但语言在这里无关紧要)。
谢谢!
如果我没理解错的话。以另一种方式构建数据结构。子节点的列表(或向量),每个子节点都保留一个反向链接到主节点的列表。在这种情况下,改变子段的大小只是简单地将主节点从一个列表移动到另一个列表。
1 -> 2 -> 3 -> 4 -> 5
/ / /
a----- b