【发布时间】:2018-10-30 09:16:33
【问题描述】:
我有一堆按层次结构排列的节点如下:
我想确定一个节点是否连接到另一个节点,即使两者之间的连接被层次结构中的不同级别分隔。
例如,节点 A 通过节点 B 和 D 连接到节点 K。节点 A 也通过节点 B 和 D 或节点 C 和 G 连接到节点 L。
节点 E、F、H、J 和 M 未连接到节点 L。
在不通过从父节点到某个子节点的层次结构来确定两个节点是否连接的情况下,我相信可以为每个节点分配一些数值,并通过一个取两个数值的公式节点可以确定它们是连接的。
这可能吗?
【问题讨论】:
-
你能用这样的东西吗:stackoverflow.com/questions/10310809/…?您可以将您的图视为森林并为每个根节点(示例中的 A 和 M)运行算法,并将多个前/后顺序标签分配给具有多个父节点的节点
-
对于“已连接”,您的意思是“通过遍历 only 父关系或 only 子关系,但不能同时访问两者”?
-
您对“连接到”的定义需要澄清。我可以清楚地看到从 E 到 L 经 D 的线,但你是在告诉我它们没有连接?
-
通过“连接”,无论您是从孩子(或孙子)开始,然后按自己的方式到达父母(或祖父母)还是反过来。
-
您可以通过严格的层次结构相当容易地做到这一点。但是,从 G 到 L 的链接打破了严格的等级制度。您最终可能会得到每个节点的多个数值。这会让事情变得相当复杂。