多语言展示
当前在线:665今日阅读:75今日分享:44

如何判别一个有向图中是否有环路

如何判别一个有向图中是否有环路
方法/步骤
1

a可以,深搜万能,就是时间有点那个b当然可以,拓朴排序本来就是在无环图才有解的C.求最短路径,这个..一般不行,不过你用floyd修改我也无语了,可以,但时间代价有点大D.广度优先遍历,这个。。应该也可以吧,就是只要队列重复就有环,不过判断很麻烦,得细细做才能出来。用宽搜是不是有点大材小用? 单选选B因为B是基础的就可以,不需修改

2

#include'utility.h'#include'adj_matrix_undir_graph.h'#include'adj_list_dir_graph.h'#include'dfs.h'#include'bfs.h'int main(void){ int n,j=0,i=0; int m,e,b=0; char vexs[20],c; char nums[20];

3

cout<<'输入无向图的顶点个数n:'<>n; cout<<'输入顶点元素:'<>vexs[i]; j++; }

4

cout<<'输出无向图的邻接矩阵:'< aundir(vexs,n); for(i=0;i

5

{ for(int v=1;v>c; if(c == 'Y' ) aundir.InsertEdge(i,v); } } Display(aundir);

6

cout<<'请输入有向图的顶点个数m:'; cin>>m; for(int a=0;a>nums[a]; b++; } AdjListDirGraph dir(nums,m);    for(int k=0;k

7

{ for(e=0;e>c;            if(c == 'Y' ) dir.InsertEdge(k,e); } } Display(dir); cout<<'无向图的深度遍历:'; DFSTraverse(aundir,Write); cout<(aundir,Write);

8

cout<(dir,Write); cout<(dir,Write);

推荐信息