概述
第六章 图
1. 无向图;有向图;稀疏图;稠密图;网(边/弧带权的图)
2. 完全图:完全无向图(边:n(n-1)/2 );完全有向图(边:n(n-1) )
3. 无向图:所有顶点度数和=边数*2
有向图:所有顶点出度和=入度和=边数
4. 路径长度;回路;简单回路
5. 连通图
无向图:连通图;极大连通子图(连通分量)
有向图:强连通图;极大强连通子图(强连通分量)
6. 极小连通子图:子图是G 的连通子图,在该子图中删除任何一条边,子图不再连通。
生成树:包含无向图G 所有顶点的极小连通子图
生成森林:在非连通图中,由每个连通分量都可以得到一棵生成树,这些连通分量的生成树就组成了一个非连通图的生成森林。
7. 图的存储结构:顺序存储结构;链式存储结构
8. 顺序存储结构:邻接矩阵表示法(数组表示法)
链式存储结构:邻接表表示法(逆邻接表法);十字链表;邻接多重表
9. 邻接矩阵表示法
邻接矩阵表示法的特点
优点:容易实现以下操作:
求某顶点的度;判断顶点之间是否有边;找顶点的邻接点等等。
缺点:对稀疏图而言尤其浪费空间。n个顶点需要n*n个单元存储边;空间效率为O(n^2)。
10. 基于邻接矩阵表示法创建无向网
11. 邻接表表示法
无向图的邻接表表示:空间效率为O(n+2e)
有向图的邻接表表示:空间效率为O(n+e)
12. 图的遍历:深度优先搜索/遍历(DFS);广度优先搜索/遍历(BFS)
13. 深度优先搜索/遍历
DFS算法效率分析
邻接矩阵:时间复杂度为O(n^2) ; 邻接表:时间复杂度为O(n+e)
14. 广度优先搜索/遍历
BFS算法效率分析
邻接矩阵:时间复杂度为O(n^2) ; 邻接表:时间复杂度为O(n+e)
15. 一个连通图的生成树可能不唯一,由不同的遍历次序、从不同顶点出发进行遍历都会得到不同的生成树。
16. 最小生成树:在图G所有生成树中,代价(各边权值之和)最小的生成树称为最小生成树。
17. 给定一个无向网,构造最小生成树的准则:
只使用该网中的边来构造最小生成树
使用且仅使用n-1条边来联结网络中的n个顶点
不能使用产生回路的边
18. 求最小生成树算法:
Kruskal(克鲁斯卡尔)算法:归并边,适于稀疏网;时间复杂度O(eloge);
存储表示:邻接表
操作过程:
(1)将边全部提取出来放入一个列表中,从权重小到大依次排序;
(2)将最小权重的边放入图中与对应的顶点相连;
(3)要确保边填入后不能形成环,如果形成环就丢弃这条边;
(4)知道加入了(n-1)条边最小生成树构造完成。(n是树中顶点的数量)
Prim(普里姆)算法:归并顶点,与边数无关,适于稠密网;
时间复杂度O(n^2);存储表示:邻接矩阵
操作过程:
(1)从顶点 u0 出发,选择与它关联的具有最小权值的边(u0, v),将其顶点加入到生成树的顶点集合U中;
(2)每一步从一个顶点在U中,而另一个顶点不在U中的各条边中选择权值最小的边(u, v),把它的顶点加入到U中;
(3)直到所有顶点都加入到生成树顶点集合U中为止。
19. 两种常见的最短路径问题
单源最短路径:一顶点到其余各顶点
Dijkstra(迪杰斯特拉)算法:时间复杂度:O(n^2)
所有顶点间的最短路径:任意两顶点之间
Floyd(弗洛伊德)算法
20. 有向无环图及其应用:拓扑排序(AOV网);关键路径(AOE网)
21. 拓扑排序:AOV网(顶点表示活动的网)
AOV网:用顶点表示活动,用弧表示活动间的优先关系的有向图称为顶点表示活动的网,简称AOV网。
拓扑排序算法核心思想:重复选择没有直接前驱的顶点
应用:大学的课程之间存在先修关系,利用拓扑排序可以正确安排课程;
一本教材的内容之间可能存在前后关系,利用拓扑排序可使教材逻辑性强,易于理解。
房屋装修工程。
22. 拓扑排序实现:
(1)图的存储结构:采用邻接表存储 ,在顶点表中增加一个入度域。
(2)栈S:存储所有无前驱的顶点。
23. AOE网(边表示活动的网络)
AOE网:是一个带权的有向无环图,其中顶点表示事件,弧表示活动,权表示活动持续的时间。
应用:AOE网可用来估算工程的完成时间
关键路径:路径长度(权之和)最长的路径叫关键路径
关键路径长度是整个工程所需的最短工期。
24. 事件vj的最早发生时间Ve(j):这个长度决定了所有从顶点vj发出的活动能够开工的最早时间。
事件vi的最迟发生时间Vl(i):Vl(i)指在不推迟整个工期的前提下,事件vi允许的最晚发生时间。
活动as的最早开始时间e(s):若该活动在弧<vi, vj>上,则活动as的最早开始时间应等于事件vi的最早发生时间
活动as的最迟开始时间l(s):在不推迟整个工程完成的前提下,该活动最迟必须开始进行的时间。
关键活动:
小结
最后
以上就是爱撒娇蜜蜂为你收集整理的数据结构 严蔚敏 第六章 图 期末复习总结的全部内容,希望文章能够帮你解决数据结构 严蔚敏 第六章 图 期末复习总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复