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使用内存zipfile对象在内存中打包文件示例
Apr 30 Python
Python去除列表中重复元素的方法
Mar 20 Python
Python单元测试框架unittest简明使用实例
Apr 13 Python
Python实现的矩阵类实例
Aug 22 Python
python八大排序算法速度实例对比
Dec 06 Python
python 实现在Excel末尾增加新行
May 02 Python
Django实现跨域请求过程详解
Jul 25 Python
python控制台实现tab补全和清屏的例子
Aug 20 Python
Python3实现二叉树的最大深度
Sep 30 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
Feb 14 Python
Numpy 多维数据数组的实现
Jun 18 Python
使用python生成大量数据写入es数据库并查询操作(2)
Sep 23 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 CLI实现简单的数据库实时监控调度
2009/07/01 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
2017/06/28 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
2019/10/16 PHP
javascript 显示当前系统时间代码
2009/12/28 Javascript
js 编程笔记 无名函数
2011/06/28 Javascript
JS.elementGetStyle(element, style)应用示例
2013/09/24 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
2015/11/23 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
2016/05/07 Javascript
Javascript打印局部页面实例
2016/06/21 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
input file样式修改以及图片预览删除功能详细概括(推荐)
2017/08/17 Javascript
基于node.js的fs核心模块读写文件操作(实例讲解)
2017/09/10 Javascript
使用Node.js实现ORM的一种思路详解(图文)
2017/10/24 Javascript
浅谈一个webpack构建速度优化误区
2019/06/24 Javascript
[03:23:49]2016.12.17日完美“圣”典全回顾
2016/12/19 DOTA
python 统计代码行数简单实例
2017/05/04 Python
django实现前后台交互实例
2017/08/07 Python
pytorch构建网络模型的4种方法
2018/04/13 Python
Python 最大概率法进行汉语切分的方法
2018/12/14 Python
在python中将字符串转为json对象并取值的方法
2018/12/31 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
TensorFlow实现checkpoint文件转换为pb文件
2020/02/10 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
2020/07/09 Python
python实现canny边缘检测
2020/09/14 Python
新加坡网上花店:FlowerAdvisor新加坡
2018/10/05 全球购物
英国健康和美容技术产品购物网站:CurrentBody
2019/07/17 全球购物
工程开工庆典邀请函
2014/02/01 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
小城镇建设汇报材料
2014/08/16 职场文书
副乡长民主生活会个人对照检查材料思想汇报
2014/10/01 职场文书
酒店员工辞职信范文
2015/02/28 职场文书
2016大学军训心得体会
2016/01/11 职场文书
Redis的字符串是如何实现的
2021/10/24 Redis
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python
Python实现将多张图片合成MP4视频并加入背景音乐
2022/04/28 Python