题目如图:
分析和计算:
题目给出一个图的邻接矩阵表示,要求求最小生成树的总开销。
根据Kruskal算法,根据邻接矩阵顶点连接情况,收集开销最小的边,直到所有顶点被收集,且无环路,即得到最小生成树。计算收集的边的开始和,即得到最小生成树的开销。
最小生成树不唯一,假设顶点序号为V1-V6,从顶点1开始逐行收集开销最小边。
从第1行可得:
V1 ----- V3[cost:1,收集]
V1 ----- V5[cost:1,收集]
第3行可得
V3 ----- V1[和V1-V3重复,忽略]
V3 ----- V4[cost:1,收集]
V3 ----- V1[环路,丢弃]
第4行可得
V4 ----- V3[和V3-V4重复,忽略]
第5行可得
V5 ----- V1[和V1-V5重复,忽略]
V5 ----- V3[环路,丢弃]
收集开销为2的边:
第3行可得
V3 ----- V6[cost:2,收集]
第3行可得
V ----- V6[环路,丢弃]
收集开销为3的边:
第1行可得
V1 ----- V2[cost:3,收集]
此时:
Ne=5
Nv=6
所有顶点收集完毕,所有收集的边和顶点必然构成一个最小生成树。
cost=1+1+1+2+3=8,答案是C。
计算过程中绘制的拓扑图: