我是靠谱客的博主 爱撒娇蜜蜂,最近开发中收集的这篇文章主要介绍数据结构 严蔚敏 第六章 图 期末复习总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

第六章 图

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):在不推迟整个工程完成的前提下,该活动最迟必须开始进行的时间。

关键活动:

小结

最后

以上就是爱撒娇蜜蜂为你收集整理的数据结构 严蔚敏 第六章 图 期末复习总结的全部内容,希望文章能够帮你解决数据结构 严蔚敏 第六章 图 期末复习总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部