这是一个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)