基本上我有如下场景:
vertex --- vertex* --- vertex
但是,在路径中的这一点上,顶点 * 可能具有可变数量的顶点,从而导致
vertex --- vertex1 --- vertex
vertex --- vertex2 --- vertex
vertex --- vertexN --- vertex
N
在我遍历到这个顶点之前,我不知道会发生什么。当我第一次遍历该节点时,任意函数将能够确定该顶点在路径中的该点有多少个实例。
我只是记录N
为一个属性,还是创建额外N
数量的带有中间顶点且值增加的路径?
一个真实的例子是,一个包含未知数量文件夹的文件目录(直到您打开父目录),每个文件夹包含一个文件,您需要遍历每个文件路径。
更新:
这是我所期望的:
(第一次遍历,遇到具有特殊属性*的顶点)
A --- X* --- B
生成相同 X 顶点的附加实例,连接到父 A 和子 B。
A --- X1 --- B
\--- X2 --/
\-- X3 -/
或者
A --- X1 --- B
A --- X2 --- B
A --- X3 --- B
所以现在遍历会像
A, X1, B
A, X2, B
A, X3, B
X
顶点实例彼此完全相同,然后它们具有索引整数。实例数由第一次初始遍历 ( A, X*, B
) 确定。X* 可能会生成 3 或 50 或 100 个额外的实例。
对于存储,我的意思是将此索引值存储在 X* 并每次递增,直到N
达到最大整数。因此,对于上面的示例,它的起始索引为 1,最大值为 3。这将绕过在中间插入额外顶点并将其连接到 A 和 B 的需要。但是,我不确定这是否是最适合我的情况,我需要遍历每条生成的路径。