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 (1)
Oct 31 Python
python代码 输入数字使其反向输出的方法
Dec 22 Python
Python 数据库操作 SQLAlchemy的示例代码
Feb 18 Python
Python Gitlab Api 使用方法
Aug 28 Python
python实现五子棋程序
Apr 24 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
May 27 Python
Django serializer优化类视图的实现示例
Jul 16 Python
Python 操作 MySQL数据库
Sep 18 Python
python中操作文件的模块的方法总结
Feb 04 Python
Python常遇到的错误和异常
Nov 02 Python
Python帮你解决手机qq微信内存占用太多问题
Feb 15 Python
python数字图像处理:图像的绘制
Jun 28 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 如何利用phpexcel导入数据库
2013/08/24 PHP
推荐一款PHP+jQuery制作的列表分页的功能模块
2014/10/14 PHP
js替换字符串的所有示例代码
2013/07/23 Javascript
jquery.cookie.js使用指南
2015/01/05 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
探讨JavaScript标签位置的存放与功能有无关系
2016/01/15 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
2016/05/30 Javascript
JavaScript编程中实现对象封装特性的实例讲解
2016/06/24 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
详解使用Next.js构建服务端渲染应用
2018/07/10 Javascript
微信小程序canvas.drawImage完全显示图片问题的解决
2018/11/30 Javascript
JavaScript 判断iPhone X Series机型的方法
2019/01/28 Javascript
vue基础之data存储数据及v-for循环用法示例
2019/03/08 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
2020/05/30 jQuery
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS OG
2018/03/30 DOTA
Python调用ctypes使用C函数printf的方法
2017/08/23 Python
分析python动态规划的递归、非递归实现
2018/03/04 Python
对python中的控制条件、循环和跳出详解
2019/06/24 Python
在Django下创建项目以及设置settings.py教程
2019/12/03 Python
python爬取王者荣耀全皮肤的简单实现代码
2020/01/31 Python
基于python求两个列表的并集.交集.差集
2020/02/10 Python
记一次django内存异常排查及解决方法
2020/08/07 Python
英国高街电视:High Street TV
2018/05/22 全球购物
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
英国行业制服供应商:Alexandra
2019/09/14 全球购物
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
JPA的特点
2014/10/25 面试题
数控专业毕业生求职信范文
2013/09/21 职场文书
致400米运动员广播稿
2014/02/07 职场文书
工作违纪检讨书
2014/02/17 职场文书
竞聘演讲报告:基本写作有哪些?附开头范文
2019/10/16 职场文书
编写python程序的90条建议
2021/04/14 Python
MySQL EXPLAIN输出列的详细解释
2021/05/12 MySQL
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python
Django框架之路由用法
2022/06/10 Python