Python数据结构与算法——第四十五课 图的节点删除/方式转换/有无向转换

  删除节点会连带删除与它连接的边,这样可能会变为多个图。

 

  邻接矩阵删除

  矩阵长度减1,消除键所在的行和列,重新生成键字典。

  程序代码:

 

 

 

 

  运行结果:

 

 

  邻接表删除

  把关键字那行删除,其他行删除含关键字的项目。

  程序代码:

 

 

 

  运行结果:

 

 

  邻接矩阵无向转有向

  无向邻角矩阵是以对角线轴对称的,把对称的两个三角形拆开就成了2个有向的图。

  程序代码:

 

 

 

  运行结果:

 

 

  邻接矩阵有向转无向

  检查矩阵中的边放进列表,然后交换下标更新数组。

  程序代码:

 

 

 

  运行结果:

 

 

  邻接表无向转有向

  从第二个键开始,边的键是这个键之前的的键,删除进新邻接表中。

  程序代码:

 

 

 

  运行结果:

 

 

  邻接表有向转无向

  每条边增加对称边就行。用一个收集器先收集对称边,然后合并到原邻接表。

  程序代码:

 

 

 

  运行结果:

 

 

 

  学思营编程课堂基于蓝桥STEM86平台https://www.stem86.com,开展学编程三部曲:

Scratch(三年级以前)>>>Python(四年级以后)>>>C++(七年级以后)教育实验活动,任何人可以免费参加,打开https://xuesiying.stem86.com网页注册进入课堂,也可关注本公众号留言。

更多课程请打开学思营同步网站:

http://www.5xstar.com/doc.html

 

参考资料:

1、《Python算法图解》何韬编著 清华大学出版社