MOOC数据结构不挂科

第五章 图

考点

在这里插入图片描述

图存储结构基本常识

弧头和弧尾

有向图中,无箭头一端的顶点通常被称为"初始点"或"弧尾",箭头直线的顶点被称为"终端点"或"弧头"。

入度和出度

对于有向图中的一个顶点 V 来说,箭头指向 V 的弧的数量为 V 的入度(InDegree,记为 ID(V));箭头远离 V 的弧的数量为 V 的出度(OutDegree,记为OD(V))。拿图 2 中的顶点 V1来说,该顶点的入度为 1,出度为 2(该顶点的度为 3)。

在这里插入图片描述

(V1,V2) 和 <V1,V2> 的区别

无向图中描述两顶点(V1 和 V2)之间的关系可以用 (V1,V2) 来表示,而有向图中描述从 V1 到 V2 的"单向"关系用 <V1,V2> 来表示。
由于图存储结构中顶点之间的关系是用线来表示的,因此 (V1,V2) 还可以用来表示无向图中连接 V1 和 V2 的线,又称为边;同样,<V1,V2> 也可用来表示有向图中从 V1 到 V2 带方向的线,又称为弧。

集合 VR 的含义

并且,图中习惯用 VR 表示图中所有顶点之间关系的集合。例如,图 1 中无向图的集合 VR={(v1,v2),(v1,v4),(v1,v3),(v3,v4)},图 2 中有向图的集合 VR={<v1,v2>,<v1,v3>,<v3,v4>,<v4,v1>}。

路径和回路

无论是无向图还是有向图,从一个顶点到另一顶点途径的所有顶点组成的序列(包含这两个顶点),称为一条路径。如果路径中第一个顶点和最后一个顶点相同,则此路径称为"回路"(或"环")。

并且,若路径中各顶点都不重复,此路径又被称为"简单路径";同样,若回路中的顶点互不重复,此回路被称为"简单回路"(或简单环)。

拿图 1 来说,从 V1 存在一条路径还可以回到 V1,此路径为 {V1,V3,V4,V1},这是一个回路(环),而且还是一个简单回路(简单环)。

在有向图中,每条路径或回路都是有方向的。

权和网的含义

在某些实际场景中,图中的每条边(或弧)会赋予一个实数来表示一定的含义,这种与边(或弧)相匹配的实数被称为"权",而带权的图通常称为网。如图 3 所示,就是一个网结构:

在这里插入图片描述

图存储结构的分类

在这里插入图片描述
在这里插入图片描述

图的基本概念(多对多的逻辑结构)在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

图的存储结构/表现方式

顺序存储---->邻接矩阵

在这里插入图片描述
在这里插入图片描述

链式存储---->邻接表

在这里插入图片描述

邻接矩阵和邻接表的比较

在这里插入图片描述

  • 邻接矩阵的优点

    • 找到两个顶点便可以找出关系,时间复杂度为O(1)
  • 邻接矩阵的缺点

    • 邻接矩阵无论如何都需要一个二维数组[n][n] ,在各顶点度较少时浪费大量空间
  • 邻接表的优点

    • 在边较少的时节省许多空间---->适用于稀疏图
  • 邻接表的缺点

    • 无法直接获取某条边的信息,需要vi链表从头进行顺序存取,最坏情况下时间复杂度为O(n)

图的DFS和BFS遍历

DFS(Depth First Search):深度优先遍历

递归/栈的思想
在这里插入图片描述

BFS(Breath First Search):广度优先遍历

用队列来实现
在这里插入图片描述
在这里插入图片描述
题型一:给出邻接矩阵写出DFS
在这里插入图片描述
题型二:给出邻接表写出DFS
在这里插入图片描述

最小生成树(Prim算法)

生成树

去掉环,并且保持连通性

最小生成树(MST)有什么意义?

在这里插入图片描述

如何获得MST(Prim算法)

加点法,不形成环
在这里插入图片描述
在这里插入图片描述

迪杰斯特拉(Dijkstra)算法

在这里插入图片描述
在这里插入图片描述

拓扑排序

AOV
DAG:有向无环图在这里插入图片描述

在这里插入图片描述

AOE网络与关键路径求解在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值