图论相关算法:Dijkstra、Kruskal、Prim

本文介绍了图论的基础知识,包括完全图的概念、边的数量、顶点的度数以及连通性的定义。进一步讨论了有向图与无向图的区别,并提到了连通无向图和强连通有向图。文章还指出完全图的连通性质,并引出了在网络中的应用。最后,阐述了图的表示方法如邻接矩阵和字典,以及生成树和最小生成树的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图论常识汇总:
所有顶点之间都有边的图称为完全图
n个顶点的无向图有n(n-1)/2条边,n个顶点的有向图有n(n-1)条边
一个顶点的度数表示他的边的个数
所有顶点的度数除以二分之一就是边数。如果是有向图,那么还分出度和入度。
有根图表示存在一个顶点 到其他所有定点都有路径。根顶点不一定只有一个。
连通表示两个顶点之间存在路径。
连通无向图:任意两个顶点之间连通就是连通无向图
强连通有向图:对于有向图,任意两个顶点都双向连通就表示强连通有向图
完全图都是连通图。
带权连通无向图称为网络。
图可以用邻接矩阵来表示,矩阵一般比较稀疏,节省空间可以用字典存储。
生成树:从任意顶点出发遍历图的所有顶点可以构成生成树。
权值最小的生成树称为最小生成树 MST

本文章中的有向图图例

在这里插入图片描述


class Gragh:
    def __init__(self,gragh):
        self.graph = gragh[:]
        self.point = ['A','B','C','D','E']

    def show(self):
        print(self.graph)

    def Kruskal(self):
        '''
        Kruskal用于生成 最小生成树
        在所有边中不停寻找最小边,直到所有顶点被连入连通分量
        '''
        graph = self.graph[:]
        lst = sorted(graph,key=lambda x: x[-1])#先把所有的边按从小到大排序
        d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值