代码实现之前还是先让我们来了解了解图的一些基本概念(下一篇会附图的代码实现):
图的定义
图(graph)是由一些点(vertex)和这些点之间的连线(edge)所组成的;其中,点通常称为顶点(vertex),而点到点之间的连线通常称之为边或者弧(edge)。通常记为G=(V,E)。
无向边:顶点a和b之间的边没有方向 如:(a,b)或(b,a) ,这两种表示指的是同一条边。
有向边:顶点a和b之间的边有方向 如<a,b>和 <b,a> ,指的是两个不同的边。
无向图:任意两个顶点之间的边均是无向边 如图(1)
有向图:任意两个顶点之间的边都是有向边 如图(2)
邻接:两个顶点之间的一种关系,如图包含(u,v),则称顶点v和顶点u邻接。
关联:是指顶点和边之间的关系。在有向图中,边(u,v)从顶点u开始关联到v,或者相反,从顶点v开始关联到u。在无向图中,边(u,v)与顶点u和v相关联。
完全图:每个顶点都与其他顶点相邻接的图。
度(Degree):顶点 v 的度是和 v 相关联的边的数目,记为TD(v)。
入度:以 v 为头的边的数目,记为ID(v)
出度:以 v 为尾的边的数目,记为OD(v)
权(Weight):与图的边相关的数字叫做权,权常用来表示图中顶点间的距离或者耗费。(带权的图通常称为网)
路径:依次遍历顶点序列之间的边所形成的轨迹。没有重复顶点的路径称为简单路径。路径的长度是路径上的边或弧的数目。
环:是指路径包含相同的顶点两次或两次以上。也就是说,在有向图的一条路径中,如果从某顶点出发,最后能够返回该顶点,则该路径是环。除了第一个顶点和最后一个顶点之外,其余顶点不重复出现的回路称为简单环或简单回路。
连通性
对于无向图而言,如果它的每个顶点都能通过某条路径到达其他顶点,那么我们称它为连通的。如果该条件在有向图中同样成立,则称该图是强连通。尽管无向图可能不是连通的,但它扔然可能包含连通的部分,这部分分支为连通分支。如果有向图中只有部分是强连通的,则该部分称为强连通分支。
生成树
一个连通图的生成树是一个极小的连通子图,它含有图中全部的顶点,但只有足以构成一棵树的n-1条边。
最小生成树
我们把构造连通网的最小权生成树称为最小生成树。(一棵生成树的权就是树上各边的权之和)
参考博文:https://blog.csdn.net/u014754841/article/details/79379243