删除节点会连带删除与它连接的边,这样可能会变为多个图。
邻接矩阵删除
矩阵长度减1,消除键所在的行和列,重新生成键字典。
程序代码:
运行结果:
邻接表删除
把关键字那行删除,其他行删除含关键字的项目。
程序代码:
运行结果:
邻接矩阵无向转有向
无向邻角矩阵是以对角线轴对称的,把对称的两个三角形拆开就成了2个有向的图。
程序代码:
运行结果:
邻接矩阵有向转无向
检查矩阵中的边放进列表,然后交换下标更新数组。
程序代码:
运行结果:
邻接表无向转有向
从第二个键开始,边的键是这个键之前的的键,删除进新邻接表中。
程序代码:
运行结果:
邻接表有向转无向
每条边增加对称边就行。用一个收集器先收集对称边,然后合并到原邻接表。
程序代码:
运行结果:
学思营编程课堂基于蓝桥STEM86平台https://www.stem86.com,开展学编程三部曲:
Scratch(三年级以前)>>>Python(四年级以后)>>>C++(七年级以后)教育实验活动,任何人可以免费参加,打开https://xuesiying.stem86.com网页注册进入课堂,也可关注本公众号留言。
更多课程请打开“学思营”同步网站:
http://www.5xstar.com/doc.html
参考资料:
1、《Python算法图解》何韬编著 清华大学出版社