Python 判断 有向图 是否有环的实例讲解
实例如下:
importnumpy
fromnumpyimport*
defdfs(v):
vis[v]=-1
flag=0
foriinrange(n):
#print(a[v][i],'---',vis[i])
ifa[v][i]!=0andvis[i]!=-1:
dfs(i)
vis[i]=1
else:
pass
ifa[v][i]!=0andvis[i]==-1:
print('Yes,thereisAloopinthisnetwork\n')
globalswi
swi=True
exit()
return
#break
else:
pass
print('s=0')
returnFalse
globalswi
swi=False
'''===装载数据'''
edges=numpy.loadtxt('9_nodes_with_r_edge_8_to_3.txt')
#edges=[int(i)foriinedges]
bian=int(shape(edges)[0])-1
print(bian,'edgesinthenetwork\n')
print(shape(edges),'\n')
n=int(edges[0][1])
c=int(edges[0][0])
#n,c=input().split()
#n=int(n)
#c=int(c)
a=[([0]*n)foriinrange(n)]
vis=[0]*c
foriinrange(1,c+1):
s,t=edges[i][0:2]
#print(s,'-',t)
'''GO_OBO文件则s,t不需要-1'''
s=int(s)-1
t=int(t)-1
#s=int(s)
#t=int(t)
a[s][t]=1
#print(a)
#print(vis)
dfs(0)
#print(swi)
ifnotswi:
print('Noloop,DAG-DAG-DAG')
用到numpy模块,读取的txt文件为有向图的连边,其中第一行第一个数字为边的数量,第二个数字为节点数第二行及以后前两个数字,第一个为起点,第二个为落点。
以上这篇Python判断有向图是否有环的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。