无向图中独立环搜索算法

tgzhang 2009-06-27 11:32:01
现在有一个无向图,怎么才能搜索得到其中包含的所有独立环?
谢谢。
有效算法另给400分。
...全文
178 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
超级大笨狼 2010-03-26
  • 打赏
  • 举报
回复
楼主这么快就结贴了?

C#2.0以上版本思路

递归,广度优先,深度优先遍历貌似不会影响结果.
每走一点记录自己的路径,直到遇到环或者尽头(悬挂点)结束

1,假设节点我们叫做Node类.在在C#里,不需要用抽象的邻接数组来描述图.
可以用Dictionnary<Node,List<Node>>来表示图,或者 Node[2][]数组,
或者如果你用数字表示的话,可以用Point[]数组,
总之,办法很多,能表示相连的关系就可以.
如果要查重复,就用Dict,如果要排序就List,如果长度不变,顺次取就用数组.

2,在C#里路径可以用 Dictionary<Node,bool>泛型表示 ,这样可以O(1)时间内快速判断是否存在了环.在Dict的值里标注一下是环还是尽头.

当然用字符串也可以,判断字符重复估计时间复杂度<O(n)

路径的集合可以用List泛型表示.遇到遇到环或者悬挂点结束,把路径压到List里.

全部结束的时候,查看List里的东西,就是你想要的所有路径,至于是不是环,最大,最小;可以在List里 Sort得出.自己要写Compare规则,一般用delegate匿名函数做这个事情.

bigbug9002 2009-06-28
  • 打赏
  • 举报
回复
什么叫独立的环?不和其它环有共同顶点的环?

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧