声明:
0.本代码由本人根据概念自行完成 稳定性与效率未得到验证
1.prim算法实现较kruskal简单关键为点的结合与连线顺序
2.转载附原作者Id及作品链接
原代码如下:
import sys
MAX=sys.maxsize
graph=[[MAX, 10, MAX, MAX, MAX, 11, MAX, MAX, MAX],
[10, MAX, 18, MAX, MAX, MAX, 16, MAX, 12],
[MAX, 18, MAX, 22, MAX, MAX, MAX, MAX, 8],
[MAX, MAX, 22, MAX, 20, MAX, MAX, 16, 21],
[MAX, MAX, MAX, 20, MAX, 26, 7, 19, MAX],
[11, MAX, MAX, MAX, 26, MAX, 17, MAX, MAX],
[MAX, 16, MAX, MAX, 7, 17, MAX, 19, MAX],
[MAX, MAX, MAX, 16, 19, MAX, 19, MAX, MAX],
[MAX, 12, 8, 21, MAX, MAX, MAX, MAX, MAX]]
points=['A','B','C','D','E','F','G','H','I']
#点集合
tree_points=[]
#生成树点列表
start_point="A"
#起始点
tree_points.append(start_point)
while len(tree_points)!=len(points):
minimum_edge=MAX
for each_point in tree_points:
#遍历树
point_index=points.index(each_point)
edges=graph[point_index]
for i in range(len(edges)):
if points[i] not in tree_points:
#避免重复
if minimum_edge>edges[i]:
minimum_edge=edges[i]
index=i
tree_points.append(points[index])
print(tree_points)
代码至此结束
此栏目预测共享自学之乐,共勉求知之友,共塑网站和谐好学的形象。
欢迎大家在评论区发表合理的意见和指正。
如果觉得该栏目对您有帮助,望不吝点赞收藏。