数据结构基础第6讲 图及其应用
1-2个选择
考点一:图的基本概念
1.图基本概念
-
连通图:
-
极大连通子图-连通分量:
-
极小连通子图-生成树:
-
强连通顶点
给定n个顶点,要保证图在任何情况下连通需要最小边数:
- 1.生成树,边(n-1)
- 2.完全无向图\(\frac{(n-1)\times n}{2}\)
- 3.\(\left \{ \begin{matrix} (n-1)个点 \Rightarrow 完全图 \frac{(n-1)\times (n-2)}{2} \\ 1条边 \end{matrix} \right .\)
边设为E,\(E < n-1\) 一定不连通
\(|E|\geqslant(n-1)不一定\\ \frac{(n-1) \times(n-2)}{2}\geqslant E \geqslant n-1\)
\(E\geqslant\frac{(n-1)(n-2)}{2}+1\)一定连通
考点二:图的存储
1.邻接矩阵
2.邻接矩阵的特性
3.邻接表
-
邻接表概述
-
邻接表结点结构
-
邻接表特点
考点三:图的遍历
1.深度优先DFS
一些规律:
算法分析:
2.深度优先遍历生成树
3.广度优先
当一个点先遍历,下一层的点从它先出发
结论:
算法分析:
4.广度优先遍历生成树
5.关于图遍历
考点四:最小生成树
1.Prim算法(贪吃蛇)
- 算法演示过程
2.Kruskal算法
- 算法过程:
-
合并子树问题:
-
算法分析:
-
最小生成树唯一性:
在遇到相同权值时会有不同选法
考点五:最短路径
1.路径
2. Dijkstra算法:单源点最短路径问题 \(\bigstar\)
-
问题描述
-
基本思想
按长度递增的次序生成各顶点的最短路径
不适合有负权的边,也不适合有负回路
3.Floyd算法
-
算法实现:
当K=0表示经过\(v_0\),当K=1表示经过\(v_1\),当K=2表示经过\(v_2\)
-
算法分析
无法解决负权回路
考点六:AOV网和拓扑排序
1.用点表示活动的网,用边表示活动先后顺序,叫AOV网
2.拓扑排序
按其顶点的先后顺序将其整到一个序列中,且满足1,2
-
过程:
找到入度为0的结点去掉它及他的边;剩余点同理,由此得到的序列就是拓扑序列
-
拓扑序列唯一性问题
当存在平行边时一定不唯一
存在多个入度为0的点,也不唯一
有环一定没有拓扑序列
考点七:AOE网和关键路径
1.AOE网
用边表示活动
2.AOE网的性质
3.关键路径和关键活动
找关键路径:挨个数
标签:连通,遍历,拓扑,路径,基础,算法,考点,数据结构 From: https://www.cnblogs.com/JUANFENHUI/p/18153997