1.请参考课堂练习代码,完成无向图的邻接矩阵建图和度数输出。要求: 1)补全所有
时间: 2024-03-18 16:41:21 浏览: 32
代码,确保程序能正确运行;2)在程序中使用注释,解释每个关键步骤的作用。
好的,我已经明白您的问题了。以下是代码实现和注释解释:
```python
# 无向图的邻接矩阵建图和度数输出
# 定义图类
class Graph:
def __init__(self, n):
# 初始化邻接矩阵,元素都为0
self.matrix = [[0] * n for i in range(n)]
# 保存顶点个数
self.n = n
# 添加一条边,v1和v2是边的两个顶点
def add_edge(self, v1, v2):
self.matrix[v1][v2] = 1
self.matrix[v2][v1] = 1
# 输出邻接矩阵
def print_matrix(self):
for i in range(self.n):
for j in range(self.n):
print(self.matrix[i][j], end=' ')
print()
# 输出各个顶点的度数
def print_degree(self):
for i in range(self.n):
# 对每个顶点进行遍历,累加邻接矩阵中对应行的元素
degree = sum(self.matrix[i])
print("顶点{}的度数为:{}".format(i, degree))
# 主程序
if __name__ == '__main__':
# 创建一个无向图,顶点个数为5
g = Graph(5)
# 添加边
g.add_edge(0, 1)
g.add_edge(0, 2)
g.add_edge(1, 2)
g.add_edge(1, 3)
g.add_edge(2, 3)
g.add_edge(2, 4)
g.add_edge(3, 4)
# 输出邻接矩阵
print("邻接矩阵为:")
g.print_matrix()
# 输出各个顶点的度数
print("各个顶点的度数为:")
g.print_degree()
```
代码解释如下:
首先定义了一个`Graph`类,用于表示无向图。其中,`__init__()`方法用于初始化一个邻接矩阵,矩阵中的所有元素都为0;`add_edge()`方法用于添加一条边,由于是无向图,所以需要同时在对称位置上设置元素为1;`print_matrix()`方法用于输出邻接矩阵;`print_degree()`方法用于输出各个顶点的度数。
在主程序中,首先创建了一个无向图对象`g`,并添加了多条边。然后分别调用了`print_matrix()`和`print_degree()`方法,输出邻接矩阵和各个顶点的度数。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)