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编写Linux系统守护进程实例
Feb 03 Python
Python实现Smtplib发送带有各种附件的邮件实例
Jun 05 Python
python如何派生内置不可变类型并修改实例化行为
Mar 21 Python
Django 路由系统URLconf的使用
Oct 11 Python
python获取地震信息 微信实时推送
Jun 18 Python
Python+opencv+pyaudio实现带声音屏幕录制
Dec 23 Python
Python关于__name__属性的含义和作用详解
Feb 19 Python
在Matplotlib图中插入LaTex公式实例
Apr 17 Python
Python Matplotlib简易教程(小白教程)
Jul 28 Python
使用AJAX和Django获取数据的方法实例
Oct 25 Python
python opencv通过按键采集图片源码
May 20 Python
Python 发送SMTP邮件的简单教程
Jun 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中json_decode()和json_encode()的使用方法
2012/06/04 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
JQuery 解析多维的Json数据格式
2009/11/02 Javascript
颜色选择器 Color Picker,IE,Firefox,Opera,Safar
2010/11/25 Javascript
js 走马灯简单实例
2013/11/21 Javascript
原生js实现fadein 和 fadeout淡入淡出效果
2014/06/05 Javascript
浅谈jquery中delegate()与live()
2015/06/22 Javascript
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
jQuery代码实现对话框右上角菜单带关闭×
2016/05/03 Javascript
原生js实现class的添加和删除简单代码
2016/07/12 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
微信小程序 弹窗自定义实例代码
2017/03/08 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
2018/08/03 Javascript
vue使用showdown并实现代码区域高亮的示例代码
2019/10/17 Javascript
JS实现秒杀倒计时特效
2020/01/02 Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
2020/12/24 Javascript
node+multer实现图片上传的示例代码
2020/02/18 Javascript
在vue项目中promise解决回调地狱和并发请求的问题
2020/11/09 Javascript
python重试装饰器示例
2014/02/11 Python
python创建列表并给列表赋初始值的方法
2015/07/28 Python
Python爬虫辅助利器PyQuery模块的安装使用攻略
2016/04/24 Python
Django csrf 验证问题的实现
2018/10/09 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
python plotly画柱状图代码实例
2019/12/13 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
2020/02/26 Python
python如何对链表操作
2020/10/10 Python
Python try except else使用详解
2021/01/12 Python
css3实现超立体3D图片侧翻倾斜效果
2014/04/16 HTML / CSS
手对手的教你用canvas画一个简单的海报的方法示例
2018/12/10 HTML / CSS
工程招投标邀请书
2014/01/26 职场文书
校园元旦活动总结
2014/07/09 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
赔偿协议书怎么写
2015/01/28 职场文书
小兵张嘎电影观后感
2015/06/03 职场文书