社区
数据结构与算法
帖子详情
#判断图的回路问题
UNIXwlc
2004-12-23 01:40:58
请教大家一个问题! 是一DS课本后的习题。
问题描述:写一算法,判断N个顶点的图(包括有向图、无向图)中是否含有回路,要求编写的算法时间复杂度为O(N).
我开始按照基于图的遍历的思路来做,结果时间复杂度就是降不下来。不知大家有没有基于遍历的符合要求的算法。
我自己还有一个思路,就是通过判断某个连通分支中顶点数和边数的关系,不过连通分支判断花去不少时间。
大家有什么好的算法,烦请指导! 谢谢!
...全文
317
7
打赏
收藏
#判断图的回路问题
请教大家一个问题! 是一DS课本后的习题。 问题描述:写一算法,判断N个顶点的图(包括有向图、无向图)中是否含有回路,要求编写的算法时间复杂度为O(N). 我开始按照基于图的遍历的思路来做,结果时间复杂度就是降不下来。不知大家有没有基于遍历的符合要求的算法。 我自己还有一个思路,就是通过判断某个连通分支中顶点数和边数的关系,不过连通分支判断花去不少时间。 大家有什么好的算法,烦请指导! 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jaredcsdn
2004-12-31
打赏
举报
回复
这个问题要想O(N)完成是不太可能的
这里有个变通的办法,不过是O(n^3)
先把图转成邻接矩阵(1/0),做一次Warshall算法,如果对角线上有1,就说明有回路
UNIXwlc
2004-12-30
打赏
举报
回复
回复mathe():
基于图的遍历的时间复杂度是O(|V|+|E|),所以我觉得O(N)不很准确。
具体参考《数据结构与算法》许卓群、张铭 高教版
这个问题我根据第二个思路想了很久,也没有想出好的解决方法,发觉判断连通分支很费时间!
yishuihan03
2004-12-29
打赏
举报
回复
有没有消除重复回路的算法?想了2个多小时,还没有找到,等待中!!!
mathe
2004-12-26
打赏
举报
回复
输错了,是不可能在O(N)的时间内完成,除非已知边的数目同N同阶
mathe
2004-12-26
打赏
举报
回复
时间复杂度O(N)不肯定,应该是O(E),E是边的数目。
lyff8neo
2004-12-25
打赏
举报
回复
那么要把所以的回路都要输出呢,我看了一个算法好像要非常复杂的
mathe
2004-12-23
打赏
举报
回复
很简单,首先对于每个顶点x,添加一个参数visit[x]
就是深度优先遍历一次就可以了,
对于无向图,如果有某个点被两次以上访问到,那么就存在回路。
对于有向图,在深度优先遍历中,如果某个顶点的一个孩子是它的祖先,就存在回路了。
深度优先搜索
判断
回路
用C写的实现对关系矩阵
图
的深度优先搜索,
判断
是否存在
回路
。如果存在就把它存入文件
欧拉
回路
的Fleury算法
欧拉
回路
的Fleury算法是
图
论中用来
判断
图
是否存在欧拉
回路
的一种有效算法。欧拉
回路
是指经过
图
中所有边一次且仅一次行遍所有顶点的
回路
。具有欧拉
回路
的
图
称为欧拉
图
。 Fleury算法的思想是从
图
中任意选择一个顶点v0...
欧拉
回路
题集
- **题目描述**:给定一个无向
图
,
判断
其是否存在欧拉
回路
。 - **解题思路**:检查
图
是否连通,以及每个节点的度数是否为偶数。如果满足这两个条件,则存在欧拉
回路
。 - **数据结构**:使用邻接表表示
图
。 2. **...
深度遍历检查
图
中是否有
回路
存储结构:邻接矩阵; 实现功能:深度遍历求
回路
; 博客中的代码实现
20151910042-刘鹏-AG实验05-欧拉
图
判断
与寻找欧拉
回路
1
实验目的包括理解和掌握欧拉
图
的定义,以及如何编写算法来
判断
一个
图
是否为欧拉
图
,并找到其中的欧拉
回路
。实验者需要具备一定的
图
论基础,如理解
图
的结构、奇点和偶点的概念。奇点是指度数为奇数的顶点,而在欧拉
图
...
数据结构与算法
33,028
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章