Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 已建立的数据结构/模式?具有动态链接子项的列表_Arrays_Design Patterns_Linked List - Fatal编程技术网

Arrays 已建立的数据结构/模式?具有动态链接子项的列表

Arrays 已建立的数据结构/模式?具有动态链接子项的列表,arrays,design-patterns,linked-list,Arrays,Design Patterns,Linked List,我需要一个解决方案,其中我有一个“主”列表/数组,该列表/数组具有多个按顺序链接的子级,每个子级表示父列表的一个子段。它类似于模式,但这里的段列表大小应该是动态的 在这里,我将尝试进一步解释。我想知道这种数据结构/模式(与“图形”、“二叉树”等方式相同)是否有一个固定的术语,这将有助于我进一步研究这一问题,试图找到最佳实现 假设我们有一个“主”列表,大小为10个项目,0-9,三个子项a、b和c以以下方式表示主的子段: "master" ------------------- 0-9

我需要一个解决方案,其中我有一个“主”列表/数组,该列表/数组具有多个按顺序链接的子级,每个子级表示父列表的一个子段。它类似于模式,但这里的段列表大小应该是动态的

在这里,我将尝试进一步解释。我想知道这种数据结构/模式(与“图形”、“二叉树”等方式相同)是否有一个固定的术语,这将有助于我进一步研究这一问题,试图找到最佳实现

假设我们有一个“主”列表,大小为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

可能是同一个主控有两个子控(例如a和b),还是每个主控只有一个子控?主控和子控之间应该存在一对多关系……我怀疑,您是否可以在一个数组中建立n:m关系。当然你可以分两组来做谢谢你elevener!我之所以以这种方式(首先是“主列表”)呈现它,是因为在我的情况下,我从给定的主列表开始,并从中扣除孩子。但也许从“儿童的角度”来控制结构更好……事实上,它并没有太大变化。那会更方便。将您的主控项保留为一个列表,但仍然按照我建议的方式组织主控项/子控项链接(基于演绎构建子控项列表/链接)。原则上,您不需要将child保留在列表中。在这种情况下,使用主列表中的链接进行简单遍历,添加图像