请问在图的邻接矩阵里面如何找出回路?

xiston 2008-05-16 08:27:07
RT,能给出算法吗?
谢谢!
...全文
1725 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
可口可乐 2008-05-16
  • 打赏
  • 举报
回复
矩阵的表示应该是:i到j有边,则A[i][j]=1,反之A[i][j]=0
利用Warshall算法
for (i = 0; i < V; i++)
for (s = 0; s < V; s++)
for (t = 0; t < V; t++)
if (A[s][i] && A[i][t]) A[s][t] = true;
可算出任意两条边是否存在路径,
再检查,如果i到j有路径,j到i也有路径,在i和j之间存在回路
  • 打赏
  • 举报
回复
就是一个普通的深度优先搜索过程,如果在搜索过程中发现了“反向边”,就说明图中存在回路。

在图的深优搜索过程中,初始化时每个顶点置为白色,搜索中某个顶点刚被发现时置为灰色,搜索完成后(该顶点在邻接矩阵中的相邻顶点都被检索过)将其置为黑色。
反向边的定义:对于搜索过程中的边(u,v),如果v的颜色是灰色,则(u,v)就是一条“反向边”

33,010

社区成员

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

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