gpt4 book ai didi

algorithm - 合并无向图中的循环以创建树

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:01:01 24 4
gpt4 key购买 nike

问题:给定一个带环的无向图,合并最少数量的节点以消除环。

例如下图的解:

     G      H
/ \ / \
A--B---C--D---E--F
\ / \
I J

会是

A--BCGI--DEH--F
\
J

我对如何通过进行广度优先搜索并在检测到循环时将节点合并到根来解决这个问题有一个粗略的想法,但这似乎有点复杂。我想知道是否有解决该问题的知名算法。

顺便说一句:这不是作业。 :)

最佳答案

  1. 使用 BFS 或 DFS 创建生成树
  2. 对于不在树中的每条边,合并边的两个节点和路径上的所有节点,直到它们最近的共同祖先。

这听起来很像您已经想到的:)。但是,如果您使用 union-find 数据结构来跟踪合并而不是实际修改图形,那就容易多了。参见 http://www.algorithmist.com/index.php/Union_Find

关于algorithm - 合并无向图中的循环以创建树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35540318/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com