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 相关文章推荐
Python 第一步 hello world
Sep 25 Python
各种Python库安装包下载地址与安装过程详细介绍(Windows版)
Nov 02 Python
Python利用turtle库绘制彩虹代码示例
Dec 20 Python
Python求一批字符串的最长公共前缀算法示例
Mar 02 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
Apr 25 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
Aug 23 Python
使用apiDoc实现python接口文档编写
Nov 19 Python
django 模版关闭转义方式
May 14 Python
Keras模型转成tensorflow的.pb操作
Jul 06 Python
Python 创建TCP服务器的方法
Jul 28 Python
Python环境使用OpenCV检测人脸实现教程
Oct 19 Python
从np.random.normal()到正态分布的拟合操作
Jun 02 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处理后端&接口访问超时的解决方法
2016/10/29 PHP
如何判断php mysqli扩展类是否开启
2016/12/24 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
JavaScript 和 Java 的区别浅析
2013/07/31 Javascript
Javascript对象属性方法汇总
2013/11/21 Javascript
js跳转页面方法实现汇总
2014/02/11 Javascript
jquery实现美观的导航菜单鼠标提示特效代码
2015/09/06 Javascript
jQuery position() 函数详解以及jQuery中position函数的应用
2015/12/14 Javascript
微信小程序 wxapp内容组件 icon详细介绍
2016/10/31 Javascript
JS 全屏和退出全屏详解及实例代码
2016/11/07 Javascript
如何获取vue单文件自身源码路径
2019/05/06 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
2019/09/10 Javascript
利用js实现简易红绿灯
2020/10/15 Javascript
Python3 加密(hashlib和hmac)模块的实现
2017/11/23 Python
详解appium+python 启动一个app步骤
2017/12/20 Python
用python与文件进行交互的方法
2018/03/01 Python
Python3读取Excel数据存入MySQL的方法
2018/05/04 Python
Python给定一个句子倒序输出单词以及字母的方法
2018/12/20 Python
解决django前后端分离csrf验证的问题
2019/02/03 Python
Django使用redis缓存服务器的实现代码示例
2019/04/28 Python
树莓派动作捕捉抓拍存储图像脚本
2019/06/22 Python
Adobe Html5 Extension开发初体验图文教程
2017/11/14 HTML / CSS
租租车:国际租车、美国租车、欧洲租车、特价预订国外租车(中文服务)
2018/03/28 全球购物
俄罗斯Sportmarket体育在线商店:用于旅游和户外活动
2019/11/12 全球购物
编码实现字符串转整型的函数
2012/06/02 面试题
一道Delphi面试题
2016/10/28 面试题
外语学院毕业生的自我鉴定
2013/11/28 职场文书
给酒店员工的表扬信
2014/01/11 职场文书
公司法定代表人授权委托书
2014/09/29 职场文书
2014年学生工作总结
2014/11/20 职场文书
解决Maven项目中 Invalid bound statement 无效的绑定问题
2021/06/15 Java/Android
Python Pandas常用函数方法总结
2021/06/15 Python
Jackson 反序列化时实现大小写不敏感设置
2021/06/29 Java/Android
Win11怎么把合并的任务栏分开 Win11任务栏合并分开教程
2022/04/06 数码科技