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判断有向图是否有环的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。