邓俊辉数据结构与算法学习笔记-第六章

这篇博客介绍了邓俊辉教授的数据结构与算法课程中的图相关知识,包括有向/无向图的概念,邻接矩阵的接口、实现及其操作,以及BFS和DFS搜索策略。内容涵盖了图的路径、环路、有向无环图(DAG)、邻接矩阵的错误修正以及BFS和DFS的细节,如最短路径和边的分类。
摘要由CSDN通过智能技术生成


day25

a 图

a1 概述:邻接,相关

在这里插入图片描述之前学习到vector,tree都是图的特例;

a2 有向/无向图

在这里插入图片描述可以通过有向图表示无向图或混合图,技巧是将无向边转化为彼此对称的一对有向边。

a3 路径 环路

在这里插入图片描述所有的环路中比较有意思的两种:如图(i)经过所有的边一次且恰好一次,(ii)经过每个顶点一次且恰好一次
有向无环图(DAG)不包含有向环的有向图就是有向无环图

b

b1-1 邻接矩阵-接口

在这里插入图片描述

b1-2 邻接矩阵与关联矩阵

在这里插入图片描述关联矩阵行为顶点,列为边,每一列只有两个位置是1,其余位置都是0

b1-3 实例

在这里插入图片描述

b1-4 顶点和边

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

b1-5 邻接矩阵

在这里插入图片描述顶点集,边集(即邻接矩阵)

b1-6 顶点静态操作

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

b1-7 边操作

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

b1-8 顶点动态操作

在这里插入图片描述在这里插入图片描述上述代码有误,需要在第4、8行加上代码e–(边数减一)

b1-9 综合评价

对邻接矩阵表示法的综合评价
在这里插入图片描述在这里插入图片描述具体证明方法参考教材练习中的6-3题

c搜索

c1 BFS化繁为简

在这里插入图片描述

c2 策略

在这里插入图片描述树的层次遍历是图的广度优先搜索的特例

c3 实现

在这里插入图片描述分别处理见下一节

c4 可能情况

在这里插入图片描述

c5 实例

在这里插入图片描述最后去掉cross edge,可以得到一棵树(右下图)

c6 多连通

在这里插入图片描述如何实现对多个连通域的统一遍历,每一个连通域启动且只启动一次广度优先搜索

c7 复杂度

在这里插入图片描述对前面BFS代码的复杂度分析

c8 最短路径

在这里插入图片描述在这里插入图片描述对于无权图的BFS遍历,如上图右,每个节点与S节点的那一条通路,恰好对应于原图中这两个节点间的最短通路。证明见习题6-7

d 深度优先搜索

d1 DFS算法

在这里插入图片描述

d2 DFS框架

在这里插入图片描述

d3 细节

在这里插入图片描述有向图的深度优先搜索树中有四类边。设(v,u)是图中一条边。
在explore(v)中如果u是第一次被访问,则(v,u)是树边(Tree edge);
若v是u在搜索树中的祖先,且在explore(v)前u已经被访问过,则(v,u)是前向边(Forward edge);
若v是u在搜索树中的后裔,且在explore(v)前u已经被发现,则(v,u)是回边(Back edge);
若v和u没有祖先-后裔(后裔-祖先)关系,且在explore(v)前u已经被访问过,则(v,u)是横跨边(Cross edge).

d4 无向图

见视频

d5 有向图

在这里插入图片描述在这里插入图片描述详见视频

d6 多可达域

在这里插入图片描述

d7 嵌套引理

在这里插入图片描述完成代码,开始第七章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值