数据结构——图结构

图的定义和术语

1.邻接点:假若顶点v和顶点w之间存在一条边,则称顶点v和w互为“邻接点”。
2.关联: 边(v,w)和顶点v和w相“关联”。或者说边(w,v)依附于顶点v和w。
在这里插入图片描述
3.回路(环):第一个顶点和最后一个顶点相同的路径。
4.简单路径:序列中顶点不重复出现的路径。
5.简单回路(简单环):除了第一个顶点和最后一个顶点外,其余顶点不重复出现的回路。
6.连通图:在无向图中,如果从一个顶点vi到另一个顶点vj(i≠j)有路径,则称顶点vi和vj是连通的。
7.连通分量:非连通图的极大连通子图称为连通分量。
在这里插入图片描述
在这里插入图片描述
8.强连通图:在有向图中,对图中任意一对顶点vi和vj (i≠j),若从顶点vi到顶点vj和从顶点vj到顶点vi均有路径,则称该有向图是强连通图。
9.强连通分量:非强连通图的极大强连通子图。
在这里插入图片描述
10.生成树:n个顶点的连通图G的生成树是包含G中全部顶点的一个极小连通子图。
在这里插入图片描述
11.生成森林:在非连通图中,由每个连通分量都可以得到一棵生成树,这些连通分量的生成树就组成了一个非连通图的生成森林。
在这里插入图片描述

深度优先遍历(DFS):找边

基本思想:
⑴ 访问顶点v;
⑵ 从v的未被访问的邻接点中选取一个顶点w,从w出发进行深度优先遍历;
⑶ 重复上述两步,直至图中所有和v有路径相通的顶点都被访问到。

在这里插入图片描述
归纳:
在访问图中某一起始顶点 v 后,由 v 出发,访问它的任一邻接顶点 w1;
再从 w1 出发,访问与 w1邻接但还未被访问过的顶点 w2;
然后再从 w2 出发,进行类似的访问,…
如此进行下去,直至到达所有的邻接顶点都被访问过为止。
接着,退回一步,退到前一次刚访问过的顶点,看是否还有其它没有被访问的邻接顶点。
如果有,则访问此顶点,之后再从此顶点出发,进行与前述类似的访问;
如果没有,就再退回一步进行搜索。重复上述过程,直到连通图中所有顶点都被访问过为止。
DFS 算法效率分析:
(设图中有 n 个顶点,e 条边)
如果用邻接矩阵来表示图,遍历图中每一个顶点都要从头扫描该顶点所在行,因此遍历全部顶点所需的时间为O(n2)。
如果用邻接表来表示图,找邻结点所需要的时间是O(e) ,加上访问 n个头结点的时间,因此遍历图的时间复杂度为O(n+e)。
结论:
稠密图适于在邻接矩阵上进行深度遍历;
稀疏图适于在邻接表上进行深度遍历。

广度优先遍历(BFS):找顶点

基本思想:
⑴ 访问顶点v;
⑵ 依次访问v的各个未被访问的邻接点v1, v2, …, vk;
⑶ 分别从v1,v2,…,vk出发依次访问它们未被访问的邻接点,并使“先被访问顶点的邻接点”先于“后被访问顶点的邻接点”被访问。直至图中所有与顶点v有路径相通的顶点都被访问到。
广度优先搜索是一种分层的搜索过程,每向前走一步可能访问一批顶点,不像深度优先搜索那样有回退的情况。因此,广度优先搜索不是一个递归的过程,其算法也不是递归的。在这里插入图片描述在这里插入图片描述
BFS 算法效率分析:
设图中有 n 个顶点,e 条边)
时间效率分析:
如果使用邻接表来表示图,则BFS循环的总时间代价为 O(n+e)。同DFS
如果使用邻接矩阵,则BFS对于每一个被访问到的顶点,都要循环检测矩阵中的整整一行( n 个元素),总的时间代价为O(n2)。同DFS。

DFS与BFS之比较:
空间复杂度相同,都是O(n)(借用了堆栈或队列);
时间复杂度只与存储结构(邻接矩阵或邻接表)有关,而与搜索路径无关。
遍历图的实质是通过边找邻接点的过程,访问顺序不同就产生不同的遍历方法DFS和BFS。

图的生成树

1.生成树的特征——n 个顶点的连通网络的生成树有 n 个顶点、n-1 条边。
2.求生成树的方法——DFS(深度优先搜索)和 BFS(广度优先搜索).
3.对于连通图,仅需从图中任一顶点出发,进行DFS或BFS, 便可访问到图中所有顶点. 对于非连通图,需从多个顶点出发进行搜索,而每一次从一个新的起始点出发进行搜索过程中得到的顶点访问序 列恰为其各个连通分量中的顶点集.
4.生成树的代价:设G=(V,E)是一个无向连通网,生成树上各边的权值之和称为该生成树的代价。
5.最小生成树:在图G所有生成树中,代价最小的生成树称为最小生成树。

求最小生成树——克鲁斯卡尔算法(判断新添加的边是否在最小生成树中构成回路是该算法的关键)
在这里插入图片描述
2.求最小生成树——普利姆算法(从候选节点中选择最小的权值添加到最小生成树中)
在这里插入图片描述
图片来源:XX大学老师授课PPT

发布了48 篇原创文章 · 获赞 35 · 访问量 4992

猜你喜欢

转载自blog.csdn.net/qq_44749053/article/details/103335825