您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python使用邻接矩阵构造图代码示例

5b51 2022/1/14 8:16:09 python 字数 1363 阅读 326 来源 www.jb51.cc/python

问题 如何使用list构造图 邻接矩阵的方式 Python代码示例 #!/usr/bin/envpython #-*-encoding:utf-8-*-

概述

问题

如何使用list构造图

邻接矩阵的方式

Python代码示例

# !/usr/bin/env python
# -*-encoding: utf-8-*-
# author:LiYanwei
# version:0.1

# 邻接矩阵
'''

a---b\
|  | \
|  | c
|  | /
e---d/

对于无向图顶点之间存在边,则为1,反之则为0

 a b c d e
a 0 1 0 0 1
b 1 0 1 1 0
c 0 1 0 1 0
d 0 1 1 0 1
e 1 0 0 1 0

观察得知对脚线对称

对于有向图,若a--->b存在,则为ab之间为1,ba为0
对于有权值的存在,可以设置相应的数值

缺陷:
1.对于定点多边少的图,构造的矩阵空间浪费
2.获取某个顶点的邻接顶点,需要遍历相应的列表,找到1的顶点

'''

# 构造顶点 列表解析
N = 5
a,b,c,d,e = xrange(5)
G = [[0] * N for _ in xrange(5)]

# 无向图构造边
def addEdge(G,v1,v2):
  G[v1][v2] = G[v2][v1] = 1

addEdge(G,a,b)
addEdge(G,c)
addEdge(G,d)
addEdge(G,e)
addEdge(G,c)

print G

结果:

[[0,1,0],[1,1],[0,0]]


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶