社区
数据结构与算法
帖子详情
如何用BFS判断有向图中是否有环(DFS的不用说了...)?
qingyaoli
2008-10-23 05:17:57
RT
...全文
2576
6
打赏
收藏
如何用BFS判断有向图中是否有环(DFS的不用说了...)?
RT
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Debugcool
2012-01-19
打赏
举报
回复
因为是有向图,问题就变得很简单了,直接正常BFS,如果遇到之前已经遇到过的点的话,就证明图中有环。
nikun_
2012-01-18
打赏
举报
回复
LZ说的是拓扑排序吗?
Starry314
2012-01-09
打赏
举报
回复
用BFS遍历有向图,遍历过的点hash掉。。
如果新遍历的点已经被hash过了,那么就出现环了。。
假设u->v
当遍历到v的时候,v被hash过了,那么就出现环了。。。
如果要打印出环的话,那么就需要记录每个点的前驱。然后从u点递归上去,当递归到v的时候,开始回溯,在回溯的过程输出每个点就好了。。
下午有考试,代码就不写了。。
RKJ
2012-01-08
打赏
举报
回复
2
[Quote=引用 1 楼 zeninpalm 的回复:]
奇怪,居然没有人回答!很简单,每次新添加一层节点后,检查是否当中任何一个节点与同一层另一个节点之间有边,若有,必是一个环。如果要打印出这个环,在做BFS的同时,每添加一个节点v进来,为该节点记录(u,v),u是与v相连的上层节点,检测到环后,只要分别顺着v1,v2两个节点的上层节点列表,直到为同一个为止
[/Quote]
1楼的回答恐怕不行吧,如A->B,A->C,B->C显然符合你说的情况,但A、B、C不构成环啊。
wendyyue1986
2008-10-26
打赏
举报
回复
楼主正解
ZenInPalm
2008-10-24
打赏
举报
回复
奇怪,居然没有人回答!很简单,每次新添加一层节点后,检查是否当中任何一个节点与同一层另一个节点之间有边,若有,必是一个环。如果要打印出这个环,在做BFS的同时,每添加一个节点v进来,为该节点记录(u,v),u是与v相连的上层节点,检测到环后,只要分别顺着v1,v2两个节点的上层节点列表,直到为同一个为止
无向图 数据结构实验 c语言写的控制台程序
无向图 数据结构实验 c语言写的控制台程序无向图 数据结构实验 c语言写的控制台程序
Java
判断
无向图
中
是否
存在环(
DFS
和并查集)
第一次写博客,不太会用,话不多说 直接上代码 详细可以看注释,无向图
判断
是否
存在环比
有向图
相对复杂一点 ,需要
判断
访问的节点的临接表
中
的节点与父节点
是否
相同。 /** * @Description:
判断
无向图
是否
有环
深度优先遍历 * 需要保存父节点 * @Create 2020-04-03 21:04 * @Email:1173748742@qq.com */ public clas...
拓扑排序(
判断
是否
是有向无环图DAG)【
dfs
+
bfs
】
拓扑排序原理:对有向无环图DAG的顶点进行排序,使得对于每一条有向边(u,v),均有u(在排序记录
中
)比v先出现,亦可理解为对某点v而言,只有当v的所有源点均出现了v才能出现 根据定义,可以得到以下两个结论: 如果图G
中
存在环(即G不是有向无环图),那么G不存在拓扑排序,反之如果G存在拓扑排序,则G
中
没
有环
如果G是有向无环图,那么他的拓扑排序可能不止一种 我们用两种方法来求解拓扑排序:
dfs
和
bfs
方法一 :深度优先搜索 我们用一个栈来存储所有已经搜索完成的结点,对于某个结点,他在搜索过程..
无向图连通性
判断
的五种方法(
BFS
、
DFS
、Union-find、Warshell、Tarjan)
目录 无向连通图的相关定义 主要算法流程
DFS
判断
:
BFS
判断
: Warshell
判断
: Union-Find
判断
: Tarjan
判断
: 无向连通图的相关定义 连通性:在图G
中
,两个不同的结点u和结点v之间若存在一条路,则称结点u和结点v是连通的。 无向连通图:若在无向图G
中
,任意两点都是连通的,则称图G为连通图。 主要算法流程
DFS
判断
: 从任一结点开始,进行一...
图的基本算法(
BFS
和
DFS
)
图的基本算法(
BFS
和
DFS
) 卡巴拉的树 关注 2016.07.29 16:43* 字数 1103 阅读 24659评论 22喜欢 69赞赏 2 图是一种灵活的数据结构,一般作为一种模型用来定义对象之间的关系或联系。对象由顶点(V)表示,而对象之间的关系或者关联则通过图的边(E)来表示。 图可以分为
有向图
和无向图,一般用G=(V,E)来表示图。经常用邻接矩阵或者邻接表来描述一副图...
数据结构与算法
33,027
社区成员
35,335
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章