38385 6 2
39395 7 1
40406 7 1
41- ```
41+ ```
4242
4343输出示例:
4444
@@ -79,29 +79,29 @@ kruscal的思路:
7979
8080![ ] ( https://code-thinking-1253855093.file.myqcloud.com/pics/20240111114204.png )
8181
82- --------
82+ --------
8383
8484选边(4,5),节点4 和 节点 5 不在同一个集合,生成树可以添加边(4,5) ,并将节点4,节点5 放到同一个集合。
8585
8686![ ] ( https://code-thinking-1253855093.file.myqcloud.com/pics/20240111120458.png )
8787
8888** 大家判断两个节点是否在同一个集合,就看图中两个节点是否有绿色的粗线连着就行**
8989
90- ------
90+ ------
9191
9292(这里在强调一下,以下选边是按照上面排序好的边的数组来选择的)
9393
9494选边(1,3),节点1 和 节点3 不在同一个集合,生成树添加边(1,3),并将节点1,节点3 放到同一个集合。
9595
9696![ ] ( https://code-thinking-1253855093.file.myqcloud.com/pics/20240112105834.png )
9797
98- ---------
98+ ---------
9999
100100选边(2,6),节点2 和 节点6 不在同一个集合,生成树添加边(2,6),并将节点2,节点6 放到同一个集合。
101101
102102![ ] ( https://code-thinking-1253855093.file.myqcloud.com/pics/20240112110214.png )
103103
104- --------
104+ --------
105105
106106选边(3,4),节点3 和 节点4 不在同一个集合,生成树添加边(3,4),并将节点3,节点4 放到同一个集合。
107107
@@ -113,7 +113,7 @@ kruscal的思路:
113113
114114![ ] ( https://code-thinking-1253855093.file.myqcloud.com/pics/20240112110637.png )
115115
116- -----------
116+ -----------
117117
118118选边(5,7),节点5 和 节点7 在同一个集合,不做计算。
119119
@@ -122,7 +122,7 @@ kruscal的思路:
122122后面遍历 边(3,2),(2,4),(5,6) 同理,都因两个节点已经在同一集合,不做计算。
123123
124124
125- -------
125+ -------
126126
127127此时 我们就已经生成了一个最小生成树,即:
128128
@@ -230,7 +230,7 @@ int main() {
230230
231231如果题目要求将最小生成树的边输出的话,应该怎么办呢?
232232
233- Kruskal 算法 输出边的话,相对prim 要容易很多,因为 Kruskal 本来就是直接操作边,边的结构自然清晰,不用像 prim一样 需要再节点练成线输出边 (因为prim是对节点操作,而 Kruskal是对边操作,这是本质区别)
233+ Kruskal 算法 输出边的话,相对prim 要容易很多,因为 Kruskal 本来就是直接操作边,边的结构自然清晰,不用像 prim一样 需要再将节点连成线输出边 (因为prim是对节点操作,而 Kruskal是对边操作,这是本质区别)
234234
235235本题中,边的结构为:
236236
0 commit comments