邻接矩阵法python
时间: 2023-10-17 08:36:14 浏览: 63
邻接矩阵是一种表示图的方法,可以用于存储图中节点之间的连接关系。在 Python 中,可以使用二维数组来表示邻接矩阵。
下面是一个简单的示例代码,展示了如何通过邻接矩阵法来表示和操作一个简单的无向图:
```python
class Graph:
def __init__(self, num_vertices):
self.num_vertices = num_vertices
self.adj_matrix = [[0] * num_vertices for _ in range(num_vertices)]
def add_edge(self, src, dest):
# 由于是无向图,所以需要设置两个方向的连接关系
self.adj_matrix[src][dest] = 1
self.adj_matrix[dest][src] = 1
def remove_edge(self, src, dest):
self.adj_matrix[src][dest] = 0
self.adj_matrix[dest][src] = 0
def print_graph(self):
for row in self.adj_matrix:
for val in row:
print(val, end=" ")
print()
# 创建一个有 5 个节点的图
g = Graph(5)
g.add_edge(0, 1)
g.add_edge(0, 4)
g.add_edge(1, 2)
g.add_edge(1, 3)
g.add_edge(1, 4)
g.add_edge(2, 3)
g.add_edge(3, 4)
g.print_graph()
```
上述示例代码中,首先定义了一个 `Graph` 类,其中 `num_vertices` 表示图中节点的数量,`adj_matrix` 是一个二维数组用于存储邻接矩阵。
然后,定义了几个方法来操作图,例如 `add_edge` 用于添加边,`remove_edge` 用于移除边,`print_graph` 用于打印邻接矩阵。
最后,创建一个具有 5 个节点的图,并添加了一些边,然后调用 `print_graph` 方法打印出邻接矩阵。
你可以根据实际需求进行修改和扩展。希望对你有帮助!如果还有其他问题,请随时提问。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)