You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

有向图中根到目标节点的必经祖先查找算法名称咨询

对应标准算法名称

你描述的问题属于**支配点分析(Dominator Analysis)**问题,你所说的「必经祖先」就是图论中定义的目标节点的支配点(Dominator)。

定义匹配说明

对于给定唯一根节点的有向图:若节点d出现在根节点到目标节点n的所有路径上,则d是n的支配点,完全符合你对「必经祖先」的定义。除目标节点自身外的所有支配点,就是你要的必经祖先列表。

线性时间解法

针对你的使用场景,有两类成熟的线性时间(O(n+e),n为节点数、e为边数)实现方案:

  • 仅处理有向无环图(DAG):可以通过拓扑排序顺序遍历,迭代计算每个节点的支配点集合,实现逻辑非常简单,完全适配你500节点的规模要求。
  • 支持带环的有向图:可以使用Lengauer-Tarjan算法,这是目前应用最广泛的通用线性时间支配点求解算法,在编译优化、程序分析领域已经经过长期工业验证。

性能优化说明

你目前的单节点判断逻辑本质是验证单节点是否为目标支配点,全量枚举时的O(n²)复杂度问题可以通过上述全局预计算方案解决:预计算完成全图所有节点的支配点集合后,任意节点的必经祖先查询都可以在O(k)时间内返回,k为该节点支配点的数量。

内容的提问来源于stack exchange,提问作者TobiasKnudsen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 09:18:04