建立图的邻接矩阵存储结构(数组表示),并将邻接矩阵输出代码实现
时间: 2023-10-25 20:17:19 浏览: 47
好的,以下是图的邻接矩阵存储结构的代码实现:
```python
class Graph:
def __init__(self, n):
self.n = n
self.matrix = [[0] * n for _ in range(n)]
def add_edge(self, u, v):
self.matrix[u][v] = 1
self.matrix[v][u] = 1
def print_matrix(self):
for row in self.matrix:
print(row)
```
其中,`Graph` 类接受一个参数 `n` 表示图的节点数,构建一个 `n x n` 的邻接矩阵,初始值全部为 0。`add_edge()` 方法用于向图中添加一条边,将边所连接的两个节点在邻接矩阵中的对应位置标记为 1。`print_matrix()` 方法用于输出邻接矩阵。
使用时,可以先构建一个 `Graph` 对象,然后向其中添加边,并输出邻接矩阵。例如:
```python
# 构建一个节点数为 5 的图
g = Graph(5)
# 添加边
g.add_edge(0, 1)
g.add_edge(0, 2)
g.add_edge(1, 2)
g.add_edge(2, 3)
g.add_edge(3, 4)
# 输出邻接矩阵
g.print_matrix()
```
输出结果为:
```
[0, 1, 1, 0, 0]
[1, 0, 1, 0, 0]
[1, 1, 0, 1, 0]
[0, 0, 1, 0, 1]
[0, 0, 0, 1, 0]
```
其中,第 i 行第 j 列的值为 1 表示节点 i 和节点 j 之间有一条边。由于无向图的邻接矩阵是对称矩阵,因此在添加边时需要将对称位置也标记为 1。