python有向图是否有环_python判断无向图环是否存在的示例

暂时是一个手动设置无向图中的边,用一个二维数组表示,后面会改进为用户自己定义无向图的边。

学习python的新手,若大佬有解决的办法,希望不吝赐教

#无向图判断环是否存在

def dfs(u,fa):

for i in range(v):

n=g[u][i]#n为图中的顶点数

# print(u,n,fa,i,'')

if n in vertex:#判断n是否属于图的顶点

if n==fa:

continue

if visit[n]==0:

visit[n]=1

if dfs(n,u)==1:

return 1

else:

return 1

return 0

global flag,visit,v,g,e,vertex

vertex=[]

flag=0

v=4;e=4#v是顶点,e是边数

#v,e=map(int,input().split())

vertex=[1,2,3,4]#无向图的顶点集合

g=[[0 for i in range(20)]for i in range(20)]

visit=[0 for i in range(20)]

g[1][0]=2;g[2][0]=1;g[2][1]=3;g[3][0]=2;g[3][1]=4;g[4][0]=3;g[1][1]=3;g[3][2]=1

for i in range(1,v+1):

if visit[i]==0:

visit[i]=1

if dfs(i,-1):

flag=1

break

if flag==1:

print('Yes, there is A loop in this network')

else:

print('No loop')

以上这篇python判断无向图环是否存在的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持python博客。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值