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

基于Disjoint Set(Union Rank)的Kruskal算法生成MST问题求助

带按秩合并的不相交集生成最小生成树问题

我需要为一个包含7个节点的加权无向图生成最小生成树(MST),但在使用Disjoint Set(不相交集合)的按秩合并Union操作时遇到问题,得到的结果与总代价94的正确MST完全不符。

已排序的边列表

(1, 6) - 5;
(3, 4) - 12;
(2, 7) - 14;
(2, 3) - 16;
(4, 7) - 18;
(4, 5) - 22;
(5, 6) - 25;
(5, 7) - 26;
(1, 2) - 28;

我的合并操作过程

连接关系用<-表示操作顺序:

  • 1 <- 6
  • 3 <- 4
  • 2 <- 7
  • 3 <- (2 <- 7)
  • 4 <-7:因形成环被排除
  • 3 <- 5:执行4 <- 5,由于4的最终祖先是3,故5连接到3
  • 5 <- 6:因6的最终祖先是1,5的最终祖先是3,且3的秩更高,将1<-6合并到以3为根的树中

问题

请问如何使用带按秩合并的Disjoint Set正确生成该图的最小生成树并计算其总代价?

注:正确MST的总代价为94,结构包含边(1,6)、(2,7)、(2,3)、(3,4)、(4,5)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 03:49:57