图论常识汇总:
所有顶点之间都有边的图称为完全图
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