python 数据结构教程书上的内容,结课论文 prim算法和kruskal算法,最小生成树问题

这篇博客介绍了最小生成树问题,重点讲解了使用Python实现的Prim和Kruskal算法。通过创建矩阵展示了算法的运行过程,并给出了求解结果。实验表明,Kruskal算法在数据量较大时,特别是在稀疏图中,相对于Prim算法有更快的表现。文章还提及了算法优化和计时器的使用,为读者提供了进一步研究的方向。
摘要由CSDN通过智能技术生成

最小生成树问题

创建矩阵

import copy
MAXV=100                         #表示最多顶点个数capacity
INF=0x3f3f3f3f                      #表示∞,即两点无连接
class MatchGraph:                       #构建图邻接矩阵类,调用方法是
    def __init__(self,n=0,e=0):         #构造方法,n表示点node,e表示边edge
        self.edges=[]                 #邻接矩阵数组,暂时未用
        self.vexs=[]                  #存放顶点信息,暂时未用
        self.n=n                        #顶点数
        self.e=e                     #边数
    def CreateMatchGraph(self,a,n,e):      #通过数组a、n和e建立图的邻接矩阵
        self.n=n                        #置顶点数和边数
        self.e=e
        self.edges=copy.deepcopy(a)     #深拷贝,a是列表形式的矩阵数据
    def outputMatchGraph(self):              #输出图
        for i in range(self.n):             #行数
            for j in range(self.n):         #列数
                if self.edges[i][j]==INF:
                    print("%4s"%("∞"),end=' ')
                else:
                    print("%5d" %(self.edges[i][j]),end=' ')
            print()#换行输出

if __name__ == '__main__':
    g=MatchGraph()
    n,e=5,5
    a=[ [0,8,INF,5,INF],
        [INF,0,3,INF,INF],
      [INF,INF,0,INF,6],
        [INF,INF,9,0,INF],
        [INF,INF,INF,INF,0]]
    g.CreateMatchGraph(a,n,e)
    g.outputMatchGraph()#输出图像

 prim算法

from MatchGraph import MatchGraph,INF,MAXV
import time

def Prim(g,v):                   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值