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和ruby,我选谁?
Sep 13 Python
基于anaconda下强大的conda命令介绍
Jun 11 Python
PyQt5 在label显示的图片中绘制矩形的方法
Jun 17 Python
详解Python 调用C# dll库最简方法
Jun 20 Python
python 一个figure上显示多个图像的实例
Jul 08 Python
pow在python中的含义及用法
Jul 11 Python
查看端口并杀进程python脚本代码
Dec 17 Python
Python Matplotlib绘图基础知识代码解析
Aug 31 Python
python代码实现猜拳小游戏
Nov 30 Python
Python wordcloud库安装方法总结
Dec 31 Python
Django实现翻页的示例代码
May 24 Python
python井字棋游戏实现人机对战
Apr 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 文件上传进度条的两种实现方法的代码
2007/11/25 PHP
在PHP中使用反射技术的架构插件使用说明
2010/05/18 PHP
php模拟socket一次连接,多次发送数据的实现代码
2011/07/26 PHP
使用PHP实现蜘蛛访问日志统计
2013/07/05 PHP
PHP批量修改文件名称的方法分析
2017/02/27 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
css3实现背景模糊的三种方式
2021/03/09 HTML / CSS
脚本吧 - 幻宇工作室用到js,超强推荐expand.js
2006/12/23 Javascript
JQuery Tips(2) 关于$()包装集你不知道的
2009/12/14 Javascript
封装好的一个万能检测表单的方法
2015/01/21 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
Bootstrap Table使用心得总结
2016/11/29 Javascript
js实现九宫格拼图小游戏
2017/02/13 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
2017/06/26 Javascript
js+html制作简单日历的方法
2017/06/27 Javascript
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
2017/09/11 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
jQuery实现动画、消失、显现、渐出、渐入效果示例
2018/09/06 jQuery
ES6知识点整理之数组解构和字符串解构的应用示例
2019/04/17 Javascript
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
[59:44]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 paiN vs iG
2018/03/31 DOTA
[58:21]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第二场
2018/04/04 DOTA
Python实现把数字转换成中文
2015/06/29 Python
python计算文本文件行数的方法
2015/07/06 Python
python获取中文字符串长度的方法
2018/11/14 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
2019/06/28 Python
python使用html2text库实现从HTML转markdown的方法详解
2020/02/21 Python
Python自定义聚合函数merge与transform区别详解
2020/05/26 Python
5 分钟读懂Python 中的 Hook 钩子函数
2020/12/09 Python
HTML5利用约束验证API来检查表单的输入数据的代码实例
2016/12/20 HTML / CSS
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
英国领先的票务代理商之一:The Ticket Factory
2019/02/09 全球购物
新闻传播专业求职信
2014/07/22 职场文书
观看《周恩来的四个昼夜》思想汇报
2014/09/12 职场文书