微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何找到无向图的生成树不需要 MST?

如何解决如何找到无向图的生成树不需要 MST?

我知道解决这个问题的蛮力方法,可以给出:

  1. 遍历所有边
  2. 取一组(或列表)(假设 s)
  3. 如果向 s 添加边不会形成循环,则向 s 添加
  4. 如果所有边的迭代都完成,则结束。

但我想要一个有效的解决方案(时间+空间)来解决这个问题。

所以,任何帮助将不胜感激.......

解决方法

假设图是连通的(否则不存在生成树):从任意一个顶点开始,在图中执行depth-first search,记录每个顶点是否已经被访问过,并将每条边输出到一个您遇到的未访问顶点。这些边构成一棵生成树,因为它们是无循环的并且访问每个顶点。

这需要 O(|V|+|E|) 时间和 O(|V|) 空间。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。