图的邻接矩阵存储结构(数组表示),并将邻接矩阵输出
时间: 2024-12-10 18:13:12 浏览: 23
图的邻接矩阵存储结构是一种用二维数组表示图的方法。对于一个有n个顶点的图,邻接矩阵是一个n×n的矩阵,其中矩阵中的元素表示顶点之间的连接关系。具体来说:
1. **无向图**:如果顶点i和顶点j之间有一条边,那么矩阵中的元素A[i][j]和A[j][i]都设为1(或边的权重),否则设为0。
2. **有向图**:如果有一条从顶点i到顶点j的边,那么矩阵中的元素A[i][j]设为1(或边的权重),否则设为0。
以下是邻接矩阵的具体实现和输出示例:
```python
class Graph:
def __init__(self, num_vertices):
self.num_vertices = num_vertices
self.adj_matrix = [[0 for _ in range(num_vertices)] for _ in range(num_vertices)]
def add_edge(self, i, j, weight=1):
self.adj_matrix[i][j] = weight
self.adj_matrix[j][i] = weight # 如果是有向图,注释掉这一行
def display_matrix(self):
for row in self.adj_matrix:
print(' '.join(map(str, row)))
# 示例用法
if __name__ == "__main__":
num_vertices = 5
graph = Graph(num_vertices)
# 添加边
graph.add_edge(0, 1)
graph.add_edge(0, 4)
graph.add_edge(1, 2)
graph.add_edge(1, 3)
graph.add_edge(1, 4)
graph.add_edge(2, 3)
graph.add_edge(3, 4)
# 输出邻接矩阵
print("邻接矩阵:")
graph.display_matrix()
```
在这个示例中,我们创建了一个包含5个顶点的无向图,并添加了一些边。最后,我们通过`display_matrix`方法输出邻接矩阵。
阅读全文