算法设计学习笔记(三)

本文详细介绍了图的基本概念,包括无向图的连通性、宽度优先搜索(BFS)和深度优先搜索(DFS)。重点讲解了如何用BFS解决s-t连通性问题,以及DFS作为一般性分支扩张算法的实现。此外,还探讨了二分性测试,利用BFS判断图是否为二部图,并讨论了有向图的连通性和拓扑排序。
摘要由CSDN通过智能技术生成

一、 基本定义与应用

:由结点集合V和边集合E构成,其中每条边与两个结点相交。

有向图可以表示不对称的关系

图的例子:运输网络,通信网络,信息网络,社会网络,依赖网络。

路径与连通性:存在一条从u到v的路径,称一个无向图是连通

如果对每两个结点u与v,都存在一条从u到v的路径和一条从v到u的路径,我们说一个有向图是强连通的。

:一个无向图如果是连通的,且不包含一个圈,我们就说它是一颗树。
树是最简单的连通图,删除树中的任意一条边将使得它不再连通。

命题3.1 每棵n个结点的树恰好由n-1条边。

定理3.2 设G是具有n个结点的无向图,下面任意两个语句都可以推出第三个语句。

(i)G是连通的

(ii)G不包含一个图

(iii)G有n-1条边。

二、图的遍历

s-t连通性问题也可以叫做迷宫求解问题。

1 宽度优先搜索

确定s-t连通性最简单的算法——宽度优先搜索(BFS)

定理3.3 对每个j≥1,由BFS产生的层 Lj 恰好由所有到s距离为j的结点组成,存在一条从s到t的路径,当且仅当t出现在某个层中。
(层 Lj 恰好是所有到s结点距离为j的结点的集合)
(BFS不仅确定了s可以达到的结点,也计算了他们的最短路径

定理3.4 设T是一颗宽度优先搜索树,设x和y是T中分别属于层 Li 和 Lj 的结点,并且设(x,y)是G的一条边,那么i与j至多差1。

探查一个连通分支:

从始点s可达的结点,将把这个集合R看作G的包含s的连通分支。(可回答s-t连通性问题ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值