Python 判断 有向图 是否有环的实例讲解


Posted in Python onFebruary 01, 2018

实例如下:

import numpy
from numpy import *
def dfs( v ):
 vis[v] = -1
 flag = 0
 for i in range(n):
 # print (a[v][i],'---', vis[i] )
 if a[v][i] != 0 and vis[i] != -1:
  dfs(i)
  vis[i] = 1
 else:
  pass
 if a[v][i] != 0 and vis[i] == -1:
  print ('Yes, there is A loop in this network\n')
  global swi
  swi = True
  exit()
  return
  # break
 else:
  pass
 print ('s = 0')
 return False

global swi
swi = False
'''===装载数据'''
edges = numpy.loadtxt('9_nodes_with_r_edge_8_to_3.txt')

# edges = [ int(i) for i in edges]
bian = int(shape(edges)[0]) - 1
print (bian,'edges in the network \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) for i in range(n)]
vis = [0] * c
for i in range(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)
if not swi:
 print('No loop, DAG - DAG - DAG')

用到 numpy 模块,读取的 txt 文件为 有向图的连边,其中第一行 第一个数字 为 边的数量,第二个数字为 节点数 第二行及以后 前两个数字,第一个为 起点, 第二个为 落点。

以上这篇Python 判断 有向图 是否有环的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
pyqt5简介及安装方法介绍
Jan 31 Python
在NumPy中创建空数组/矩阵的方法
Jun 15 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
Jul 07 Python
详解python实现交叉验证法与留出法
Jul 11 Python
Python  Django 母版和继承解析
Aug 09 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
Oct 23 Python
Python内置函数locals和globals对比
Apr 28 Python
Python参数传递对象的引用原理解析
May 22 Python
Django如何实现防止XSS攻击
Oct 13 Python
Pytest实现setup和teardown的详细使用详解
Apr 17 Python
python之json文件转xml文件案例讲解
Aug 07 Python
Python 第三方库 openpyxl 的安装过程
Dec 24 Python
python使用KNN算法手写体识别
Feb 01 #Python
python @property的用法及含义全面解析
Feb 01 #Python
详解Tensorflow数据读取有三种方式(next_batch)
Feb 01 #Python
Python3 XML 获取雅虎天气的实现方法
Feb 01 #Python
Python命令行解析模块详解
Feb 01 #Python
python2.7到3.x迁移指南
Feb 01 #Python
Python Paramiko模块的使用实际案例
Feb 01 #Python
You might like
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
JavaScript入门教程(6) Window窗口对象
2009/01/31 Javascript
js过滤数组重复元素的方法
2010/09/05 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
用js实现in_array的方法
2013/11/05 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
jquery实现增加删除行的方法
2015/02/03 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
jquery动态增加删减表格行特效
2015/11/20 Javascript
jQuery选择器基础入门教程
2016/05/10 Javascript
深入理解React中es6创建组件this的方法
2016/08/29 Javascript
浅谈js函数的多种定义方法与区别
2016/11/29 Javascript
Angular.js与node.js项目里用cookie校验账户登录详解
2017/02/22 Javascript
JS中IP地址与整数相互转换的实现代码
2017/04/10 Javascript
Js面试算法详解
2018/04/08 Javascript
element-ui table span-method(行合并)的实现代码
2018/12/20 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
nodejs+express最简易的连接数据库的方法
2020/12/23 NodeJs
解决Python requests库编码 socks5代理的问题
2018/05/07 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
Tensorflow进行多维矩阵的拆分与拼接实例
2020/02/07 Python
Python3实现个位数字和十位数字对调, 其乘积不变
2020/05/03 Python
HTML5注册页面示例代码
2014/03/27 HTML / CSS
Holiday Inn中国官网:IHG旗下假日酒店预订
2018/04/08 全球购物
法制宣传月活动方案
2014/05/11 职场文书
教师一帮一活动总结
2014/07/08 职场文书
教师工作失职检讨书
2014/09/18 职场文书
反四风个人对照检查材料思想汇报
2014/09/25 职场文书
民事赔偿协议书
2014/11/02 职场文书
2014年企业员工工作总结
2014/12/09 职场文书
升职自我推荐信范文
2015/03/25 职场文书
初级职称评定工作总结
2015/08/13 职场文书
Python基础之字符串格式化详解
2021/04/21 Python
Python实现猜拳与猜数字游戏的方法详解
2022/04/06 Python