一、思维导图
二、图的定义
图G是由两个集合V和E组成,记为G=(V,E),其中V是顶点的有限集合,记为V(G),E是连接V中两个不同顶点(顶点对)的边的有限集合,记为E(G)。
三、图的基本术语
1.顶点的度:在无向图中,一个顶点所关联的边的数目称为该顶点的度.在有向图中,顶点的度又分为入度和出度,以顶点j为终点的边数目,称为该顶点的入
度;以顶点i为起点的边数目,称为该顶点的出度。一个顶点的入度和出度的和为该顶点的度。
2.路径长度:指一条路径上经过的边的数目。
3.简单路径:若一条路径上除开始点和结束点可以相同以外,其余顶点均不相同,则称此路径为简单路径。
4.图的深度优先遍历:假设初始状态是图中所有顶点均未被访问,则从某个顶点v出发,首先访问该顶点,然后依次从它的各个未被访问的邻接点出发深度优先
搜索遍历图,直至图中所有和v有路径相通的顶点都被访问到。 若此时尚有其他顶点未被访问到,则另选一个未被访问的顶点作起始点,重复上述过程,直至图中所有
顶点都被访问到为止。
5.图的广度优先遍历:从某个顶点V出发,访问该顶点的所有邻接点V1,V2..VN。从邻接点V1,V2...VN出发,再访问他们各自的所有邻接点
重复上述步骤,直到所有的顶点都被访问过。若此时图中还有顶点未被访问,则在外控算法的控制下,另选一个未曾被访问的顶点作为起始点,重复上述过程,直到图
中所有顶点都被访问完为止。
6.最小生成树:图的所有生成树中具有边上的权值之和最小的树。
7.Prim算法:输入:一个加权连通图,其中顶点集合为V,边集合为E;
初始化:Vnew = {x},其中x为集合V中的任一节点(起始点),Enew = {},为空;
重复下列操作,直到Vnew = V:
a.在集合E中选取权值最小的边<u, v>,其中u为集合Vnew中的元素,而v不在Vnew集合当中,并且v∈V(如果存在有多条满足前述条件即具有相同权值的边,则可任意选取其中之一);
b.将v加入集合Vnew中,将<u, v>边加入集合Enew中;
输出:使用集合Vnew和Enew来描述所得到的最小生成树。
8.Kruskal算法:克鲁斯卡尔(Kruskal)算法从另一途径求网的最小生成树。其基本思想是:假设连通网G=(V,E),令最小生成树的初始状态为只有n个
顶点而无边的非连通图T=(V,{}),图中每个顶点自成一个连通分量。在E中选择代价最小的边,若该边依附的顶点分别在T中不同的连通分量上,则将此边加入到T
中;否则,舍去此边而选择下一条代价最小的边。依此类推,直至T中所有顶点构成一个连通分量为止。
9.最短路径:从一顶点到另一顶点的所有路径中路径长度最短的那条路径。
10.拓扑序列:设G=(V,E)是一个具有n个顶点的有向图,v中的顶点序列v1,v2,v3.....vn称为一个拓扑序列。
11.拓扑排序:在一个有向图中找一个拓扑序列的过程称为拓扑序列。
原文:https://www.cnblogs.com/a2080941814/p/14832631.html