当前位置 : 主页 > 编程语言 > java >

Python转换无向图的关联矩阵为邻接矩阵

来源:互联网 收集:自由互联 发布时间:2023-12-16
推荐教材: 董付国编著.Python程序设计(第3版),ISBN:9787302550839,清华大学出版社,2020年6月出版,2023年6月第15次印刷(本书前两版印刷18次,已退出历史舞台),定价59.8元,山东省普


推荐教材:

董付国编著.Python程序设计(第3版),ISBN:9787302550839,清华大学出版社,2020年6月出版,2023年6月第15次印刷(本书前两版印刷18次,已退出历史舞台),定价59.8元,山东省普通高等教育一流教材,山东省一流本科课程“Python应用开发”配套教材,2019、2020、2021、2022年清华大学出版社畅销教材,2022年清华大学出版社科技类最受高校欢迎奖

Python转换无向图的关联矩阵为邻接矩阵_开发语言


图书内容:148个例题、124节微课视频(含课程思政),内容涉及Python基础、Office文件操作、GUI、图像处理、计算机图形学、音视频处理、数据分析与科学计算可视化、密码学、数据库、网络编程、多线程与多进程、逆向工程、Windows系统编程与安卓编程等领域。

页数:381

适用专业:计算机类所有专业

适用层次:研究生/本科/专科

配套资源:教学大纲、电子教案、课件、源码、数据文件、习题答案、题库,在线练习软件,支持课程思政,支持工程教育认证

适用学时:64/96/128

  • 《Python程序设计(第3版)》课后习题答案
  • 《Python程序设计(第3版)》配套教学大纲

=============

问题描述:

图结构常用的表示形式有邻接矩阵、关联矩阵和邻接表。在Python中,可以使用二维数组或者嵌套列表表示邻接矩阵和关联矩阵,使用字典表示邻接表。例如,

1)使用嵌套列表arr表示邻接矩阵时,行下标和列下标表示顶点编号(从0开始编号),如果顶点i和顶点j之间有边则arr[i][j]的值为1。例如,[[0,1,1,1], [1,0,1,0], [1,1,0,1], [1,0,1,0]]的第一行表示从顶点0到顶点1、2、3都有边,第二行表示顶点1到顶点0、2有边;

2)使用嵌套列表arr表示关联矩阵时,行下标表示顶点编号(从0开始),列下标表示边编号(从0开始),如果顶点i和边j关联则arr[i][j]为1;

3)使用字典表示邻接表时,“键”表示顶点编号,“值”表示与之关联的边,例如{0:{'a','c'}, 1:{'b','a'}, 2:{'b','c'}}表示与顶点0关联的边有a和c,与顶点1关联的边有a和b,与顶点2关联的边有b和c。

函数func()接收一个表示无向图的关联矩阵(嵌套列表形式,且所有顶点和边都升序排列,即第一行表示顶点0,第二行表示顶点1,以此类推;第一列表示边0,第二列表示边1,以此类推)的嵌套列表arr作为参数,要求返回该图对应的邻接矩阵。例如,

func([[1, 0, 1], [1, 1, 0], [0, 1, 1]])返回[[0, 1, 1], [1, 0, 1], [1, 1, 0]],

func([[1, 0, 0, 1, 1, 0], [1, 1, 0, 0, 0, 1], [0, 0, 1, 1, 0, 1], [0, 1, 1, 0, 1, 0]])返回[[0, 1, 1, 1], [1, 0, 1, 1], [1, 1, 0, 1], [1, 1, 1, 0]],

func([[1, 1, 1, 0, 0], [1, 0, 0, 0, 1], [0, 0, 0, 0, 1], [0, 1, 0, 1, 0], [0, 0, 1, 1, 0]])返回[[0, 1, 0, 1, 1], [1, 0, 1, 0, 0], [0, 1, 0, 0, 0], [1, 0, 0, 0, 1], [1, 0, 0, 1, 0]],

func([[1, 1, 1, 0, 0], [1, 0, 0, 0, 1], [0, 0, 0, 1, 1], [0, 1, 0, 0, 0], [0, 0, 1, 1, 0]])返回[[0, 1, 0, 1, 1], [1, 0, 1, 0, 0], [0, 1, 0, 0, 1], [1, 0, 0, 0, 0], [1, 0, 1, 0, 0]],

func([[1, 1, 1, 0, 0, 0], [1, 0, 0, 0, 1, 0], [0, 0, 0, 1, 1, 0], [0, 1, 0, 0, 0, 0], [0, 0, 1, 1, 0, 1], [0, 0, 0, 0, 0, 1]])返回[[0, 1, 0, 1, 1, 0], [1, 0, 1, 0, 0, 0], [0, 1, 0, 0, 1, 0], [1, 0, 0, 0, 0, 0], [1, 0, 1, 0, 0, 1], [0, 0, 0, 0, 1, 0]]。

参考代码:

Python转换无向图的关联矩阵为邻接矩阵_嵌套_02

运行结果:

Python转换无向图的关联矩阵为邻接矩阵_开发语言_03

=================

温馨提示:

关注微信公众号“Python小屋”

上一篇:递归实现斐波那契数列
下一篇:没有了
网友评论