数据结构基础第6讲

数据结构基础第6讲 图及其应用

1-2个选择

img

考点一:图的基本概念

1.图基本概念

  1. 连通图:

    img

  2. 极大连通子图-连通分量:

    img

  3. 极小连通子图-生成树:

    img

  4. 强连通顶点

    img

    给定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.邻接矩阵

img

img

2.邻接矩阵的特性

img

3.邻接表

  1. 邻接表概述

    img

  2. 邻接表结点结构

    img

    img

  3. 邻接表特点

    img

    img

    img

考点三:图的遍历

1.深度优先DFS

img

img

一些规律:

img

算法分析:

img

2.深度优先遍历生成树

img

img

3.广度优先

img

img

img

当一个点先遍历,下一层的点从它先出发

结论:

img

算法分析:

img

4.广度优先遍历生成树

img

img

5.关于图遍历

img

img

考点四:最小生成树

img

1.Prim算法(贪吃蛇)

img

  1. 算法演示过程

img

img

img

img

img

img

img

2.Kruskal算法

img

  1. 算法过程:

img

img

img

img

img

img

img

  1. 合并子树问题:

    img

  2. 算法分析:

    img

  3. 最小生成树唯一性:

    img

    在遇到相同权值时会有不同选法

    img

考点五:最短路径

1.路径

img

2. Dijkstra算法:单源点最短路径问题 \(\bigstar\)

  1. 问题描述

    img

  2. 基本思想

    按长度递增的次序生成各顶点的最短路径

    img

    img

    不适合有负权的边,也不适合有负回路

    img

3.Floyd算法

  1. 算法实现:

    img

    当K=0表示经过\(v_0\),当K=1表示经过\(v_1\),当K=2表示经过\(v_2\)

    img

    img

  2. 算法分析

    img

无法解决负权回路

img

考点六:AOV网和拓扑排序

1.用点表示活动的网,用边表示活动先后顺序,叫AOV网

img

2.拓扑排序

按其顶点的先后顺序将其整到一个序列中,且满足1,2

img

  1. 过程:

    找到入度为0的结点去掉它及他的边;剩余点同理,由此得到的序列就是拓扑序列

  2. 拓扑序列唯一性问题

    img

    当存在平行边时一定不唯一

    存在多个入度为0的点,也不唯一

    有环一定没有拓扑序列

考点七:AOE网和关键路径

1.AOE网

用边表示活动

img

img

2.AOE网的性质

img

3.关键路径和关键活动

img

img

找关键路径:挨个数

posted @ 2024-04-23 22:48  蠲忿恚葉言  阅读(71)  评论(0)    收藏  举报