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的Django框架中的URL配置与松耦合
Jul 15 Python
简单掌握Python的Collections模块中counter结构的用法
Jul 07 Python
分析Python中解析构建数据知识
Jan 20 Python
儿童编程python入门
May 08 Python
python numpy格式化打印的实例
May 14 Python
python使用thrift教程的方法示例
Mar 21 Python
Python解析json时提示“string indices must be integers”问题解决方法
Jul 31 Python
Python实现线性判别分析(LDA)的MATLAB方式
Dec 09 Python
解决python gdal投影坐标系转换的问题
Jan 17 Python
Python3标准库之functools管理函数的工具详解
Feb 27 Python
浅谈keras中的目标函数和优化函数MSE用法
Jun 10 Python
Python实例教程之检索输出月份日历表
Dec 16 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中mysql与mysqli的区别分析
2013/06/10 PHP
PHP判断是否为空的几个函数对比
2015/04/21 PHP
隐性调用php程序的方法
2015/06/13 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
2015/10/20 PHP
php技巧小结【推荐】
2017/01/19 PHP
一个很简单的办法实现TD的加亮效果.
2006/06/29 Javascript
jQuery 源码分析笔记(4) Ready函数
2011/06/02 Javascript
那些年,我还在学习jquery 学习笔记
2012/03/05 Javascript
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2013/08/12 Javascript
js处理json以及字符串的比较等常用操作
2013/09/08 Javascript
用JavaScript实现类似于ListBox功能示例代码
2014/03/09 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
2015/06/11 Javascript
jQuery on()方法绑定动态元素的点击事件无响应的解决办法
2016/07/07 Javascript
js倒计时显示实例
2016/12/11 Javascript
原生JS实现圣旨卷轴展开效果
2017/03/06 Javascript
关于javascript获取内联样式与嵌入式样式的实例
2017/06/01 Javascript
使用jQuery实现动态添加小广告
2017/07/11 jQuery
js canvas实现适用于移动端的百分比仪表盘dashboard
2017/07/18 Javascript
vue.js如何将echarts封装为组件一键使用详解
2017/10/10 Javascript
浅谈Vue内置component组件的应用场景
2018/03/27 Javascript
使用Jenkins部署React项目的方法步骤
2019/03/11 Javascript
M2实现Nodejs项目自动部署的方法步骤
2019/05/05 NodeJs
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
[01:07:46]完美世界DOTA2联赛循环赛 Magma vs IO BO2第二场 11.01
2020/11/02 DOTA
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
Python删除指定目录下过期文件的2个脚本分享
2014/04/10 Python
python文件名和文件路径操作实例
2017/09/29 Python
wxpython绘制音频效果
2019/11/18 Python
python修改微信和支付宝步数的示例代码
2020/10/12 Python
SHEIN香港:价格实惠的女性时尚服装
2018/08/14 全球购物
英国领先的维生素和营养补充剂直接供应商:Healthspan
2019/04/22 全球购物
党员群众路线承诺书
2014/05/20 职场文书
认真学习保证书
2015/02/26 职场文书
给校长的建议书范文
2015/09/14 职场文书
详细分析PHP7与PHP5区别
2021/06/26 PHP