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求pi的方法
Oct 08 Python
Python中的super()方法使用简介
Aug 14 Python
Python+OpenCV人脸检测原理及示例详解
Oct 19 Python
python爬虫 使用真实浏览器打开网页的两种方法总结
Apr 21 Python
儿童python练习实例
May 27 Python
Python实现的绘制三维双螺旋线图形功能示例
Jun 23 Python
python存储16bit和32bit图像的实例
Dec 05 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
Oct 30 Python
python爬虫学习笔记之pyquery模块基本用法详解
Apr 09 Python
使用keras根据层名称来初始化网络
May 21 Python
Python替换NumPy数组中大于某个值的所有元素实例
Jun 08 Python
python交互模式基础知识点学习
Jun 18 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搭建聊天室功能实例代码
2012/08/20 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
2019/04/09 PHP
javascript面向对象的方式实现的弹出层效果代码
2010/01/28 Javascript
JavaScript中的类继承
2010/11/25 Javascript
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
js获取form的方法
2015/05/06 Javascript
JS实现点击复选框将按钮或文本框变为灰色不可用的方法
2015/08/11 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
Javascript的表单验证长度
2016/03/16 Javascript
详解Bootstrap的iCheck插件checkbox和radio
2016/08/24 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
2016/11/25 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
浅谈vue项目如何打包扔向服务器
2018/05/08 Javascript
JS实现的视频弹幕效果示例
2018/08/17 Javascript
浅谈webpack devtool里的7种SourceMap模式
2019/01/14 Javascript
微信小程序点击保存图片到本机功能
2019/12/13 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
2020/10/19 Javascript
Node.js path模块,获取文件后缀名操作
2020/11/07 Javascript
python和C语言混合编程实例
2014/06/04 Python
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
python用户管理系统
2018/03/13 Python
Python中的异常处理try/except/finally/raise用法分析
2019/02/28 Python
python实现的批量分析xml标签中各个类别个数功能示例
2019/12/30 Python
Python 跨.py文件调用自定义函数说明
2020/06/01 Python
移动端Html5页面生成图片解决方案
2018/08/07 HTML / CSS
介绍一下木马病毒的种类
2015/07/26 面试题
寄语是什么意思
2014/04/10 职场文书
小学校长先进事迹材料
2014/05/13 职场文书
2014年个人售房协议书
2014/10/30 职场文书
健康状况证明书
2014/11/26 职场文书
行政复议答复书
2015/07/01 职场文书
党风廉政建设心得体会(2016最新版)
2016/01/22 职场文书
读《推着妈妈去旅行》有感1500字
2019/10/15 职场文书
护士年终工作总结不会写?各科护士模板总结
2020/01/02 职场文书
Java集成swagger文档组件
2021/06/28 Java/Android
MySQL系列之一 MariaDB-server安装
2021/07/02 MySQL