algorithm - 确定层次结构中的两个节点是否已连接

标签 algorithm graph-algorithm

我有一堆节点按如下层次结构排列:

Node hierarchy

我想确定一个节点是否连接到另一个节点,即使两者之间的连接被层次结构中的不同级别分开。

例如,节点 A 通过节点 B 和 D 连接到节点 K。节点 A 还通过节点 B 和 D 或节点 C 和 G 连接到节点 L。

节点 E、F、H、J 和 M 没有连接到节点 L。

无需将层次结构从父节点遍历到某个子节点以确定两个节点是否连接,我相信可以为每个节点分配一些数值并通过一个取两个数值的公式节点可以确定它们已连接。

这可能吗?

最佳答案

是的,通过提供某种累进数字或模式 (Id) 可以对此有所帮助。看看下面的图片-(对不起,图片尺寸太小。点击它可以正确查看)

enter image description here

我已经为每个节点分配了一个 Id no like 1 给根,然后 1-1....1-N 给它的子节点。现在要检查节点是否已连接,我们只需要检查一个节点 ID 是否以另一个节点开头。如果是这样,则节点已连接,否则不会。

关于algorithm - 确定层次结构中的两个节点是否已连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53060887/

相关文章:

algorithm - 计算有向图中不同 s-t 切割的数量

algorithm - 图论 : Are DFS forests that correspond to a graph isomorphic?

algorithm - 0/1 Knapsack - 对 Wiki 伪代码的一些说明

c++ - 包含全局最小值的 vector 索引

c# - 如何确定一组值的总和的任意组合是否等于某个值?

java - 给定一个大树结构,是否有一种有效的算法来对树进行查询或过滤?

algorithm - dijkstra 算法,对某些节点的最短路径只运行一次(不是两次,不是整个图)

algorithm - 计算可以在一定时间内解决的大小 N

algorithm - 给定一个数字系列,找到校验位算法......?

algorithm - 准备一个时间表,以便在最短的时间内教授所有类(class)