【DAY10 软考中级备考笔记】数据结构 图

数据结构 图 3月11日 – 天气:晴

晚上无线网络突然不能用了,花费好久弄这个,耽误了一些时间

1. 图的定义

image-20240311205524245

这里需要注意完全图的定义,以及完全图的边数

image-20240311205623609

这里需要注意连通图和连通分量的概念。

5601710161982_.pic

2. 图的存储结构

图有两种存储结构,分别是邻接矩阵和邻接表。

image-20240311210119758

对于有向图来说,邻接矩阵中每一行1的个数代表了该节点的出度。每一列中1的个数代表了该节点的入度。

对于无向图来说,每一行或每一列1的个数代表了节点的度。

从图中可以看出来,邻接矩阵的存储方式只和节点的个数有关

image-20240311210503915

邻接表的存储方式的特点是,链表中的每一个节点代表图中的一条边。链表中节点的个数等于边的个数。

对于无向图来说,链表中的节点必然是偶数个。

image-20240311210551284

image-20240311210605430

3. 图的遍历方式

image-20240311210624431

image-20240311210631535

这里需要重点记住遍历不同存储方式的图的时间复杂度

image-20240311210722153

4. 图的最小生成树

image-20240311211016876

计算最小生成树的两种算法

image-20240311211053953

Prim算法每次选择一条权值最小的边,并选择出顶点,然后从已经生成的部分中选择一条最小的边与已经生成的部分连接,直到所有的顶点都相连。时间负责度为n^2

它只和顶点的个数有关,因此适用于稠密图(顶点多,边少)

Kruskal算法每一次都选择图中最小的一条边,直到所有的顶点都被连接。

它只和边的个数有关,因此适用于稀疏图。

image-20240311211436456

5. 拓扑排序

image-20240311211616167

每次选择入度为0的节点,删除节点和与之相连边,直到不存在入度为0的顶点

注意:拓扑排序的顺序不一定唯一

image-20240311211906887

6. 关键路径

image-20240311211811630

关键路径可能不唯一

image-20240311211914081

7. 最短路径

image-20240311212032184

image-20240311212047908

无需掌握这两种算法具体怎么计算的,考试的时候直接看图就可以找到两个顶点之间的最短路径

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-12 07:38:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-12 07:38:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-12 07:38:01       82 阅读
  4. Python语言-面向对象

    2024-03-12 07:38:01       91 阅读

热门阅读

  1. SQLite表添加主键

    2024-03-12 07:38:01       40 阅读
  2. stl-list

    2024-03-12 07:38:01       44 阅读
  3. python-0001-安装虚拟环境

    2024-03-12 07:38:01       40 阅读
  4. C#设计原则

    2024-03-12 07:38:01       38 阅读
  5. 科技革新的引擎-2024年AI辅助研发趋势

    2024-03-12 07:38:01       44 阅读
  6. MR混合现实情景实训教学系统模拟高空作业情景

    2024-03-12 07:38:01       41 阅读