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

yipeiwu_com5年前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设计】。

相关文章

浅谈Python中函数的参数传递

1.普通的参数传递 >>> def add(a,b): return a+b >>> print add(1,2) 3 >&g...

Python+matplotlib绘制不同大小和颜色散点图实例

Python+matplotlib绘制不同大小和颜色散点图实例

 具有不同标记颜色和大小的散点图演示。 演示结果: 实现代码: import numpy as np import matplotlib.pyplot as plt...

NumPy 数学函数及代数运算的实现代码

一、实验介绍 1.1 实验内容 如果你使用 Python 语言进行科学计算,那么一定会接触到NumPy。NumPy 是支持 Python 语言的数值计算扩充库,其拥有强大的多维数组处...

Python3的介绍、安装和命令行的认识(推荐)

Python3的介绍、安装和命令行的认识(推荐)

PYTHON3介绍 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。 Python就为我们提供了非常完善的基...

django 实现celery动态设置周期任务执行时间

django 实现celery动态设置周期任务执行时间

蓝鲸paas平台app开发经验分享 腾讯蓝鲸智云是一套基于PaaS的技术解决方案,提供了完善的前后台开发框架、调度引擎、公共组件等模块,帮助业务的产品和技术人员快速构建低成本、免运维的支...