这是一个Python 编写的最小生成树算法的程序。
from pylab import * Inf = 65535 vexs = array([[Inf, 3, 4, 7, Inf, Inf, Inf], [3, Inf, 3, 2, 4, Inf, Inf], [4, 3, Inf, Inf, 5, 7, Inf], [7, 2, Inf, Inf, 2, Inf, 6], [Inf, 4, 5, 2, Inf, 1, 4], [Inf, Inf, 7, Inf, 1, Inf, 2], [Inf, Inf, Inf, 6, 4, 2, Inf]]) result_from = [] result_to = [] result_link = [] p = [0] tb = range(1, len(vexs), 1) tb = list(tb) cont=0 while len(result_from) != len(vexs) - 1: temp = [] for i in p: for j in tb: temp.append(vexs[i, j]) d = min(temp) for i,e in enumerate(p): for j,f in enumerate(tb): if vexs[e, f] == d: jb = i kb = j break j = p[jb] k = tb[kb] result_from.append(j) result_to.append(k) result_link.append(d) p.append(k) for i in range(len(tb)): if tb[i] == k: tb.remove(k) break print('from node',result_from) print('to node',result_to) print('length',result_link) exit(0)
