建立一个以邻接矩阵形式存储的图的代码
时间: 2024-05-13 11:17:00 浏览: 18
下面是一个以邻接矩阵形式存储的有向图的 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, v1, v2):
self.adj_matrix[v1][v2] = 1
def remove_edge(self, v1, v2):
self.adj_matrix[v1][v2] = 0
def __str__(self):
return '\n'.join([' '.join([str(x) for x in row]) for row in self.adj_matrix])
g = Graph(5)
g.add_edge(0, 1)
g.add_edge(1, 2)
g.add_edge(2, 3)
g.add_edge(3, 4)
g.add_edge(4, 0)
print(g)
```
输出:
```
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
1 0 0 0 0
```
在这个实现中,我们使用了一个二维列表 `adj_matrix` 来存储邻接矩阵。在初始化时,我们将所有项都设置为 0,表示没有边相连。每当我们添加一条边时,我们将相应的位置设置为 1。因为这是一个有向图,所以我们只在起点处设置 1,终点处不设置。如果需要删除一条边,我们只需要将相应位置的值设置为 0。最后,我们重载了 `__str__` 方法,使其返回邻接矩阵的字符串表示形式,方便输出和调试。