有向网的邻接矩阵python
时间: 2023-12-24 10:19:12 浏览: 83
有向网是一个有向图,其中每条边都带有权值。邻接矩阵是一种表示图的方法,我们可以用二维数组来表示有向网的邻接矩阵。
下面是一个用 Python 实现有向网邻接矩阵的示例代码:
```python
# 定义有向网邻接矩阵类
class AdjMatrix:
def __init__(self, vertices):
self.vertices = vertices # 顶点列表
self.matrix = [[0] * len(vertices) for _ in range(len(vertices))] # 初始化邻接矩阵为0
# 添加边
def add_edge(self, start, end, weight):
start_index = self.vertices.index(start)
end_index = self.vertices.index(end)
self.matrix[start_index][end_index] = weight
# 打印邻接矩阵
def print_matrix(self):
for row in self.matrix:
for val in row:
print('{:<4}'.format(val), end=' ')
print()
# 测试代码
if __name__ == '__main__':
vertices = ['A', 'B', 'C', 'D', 'E']
adj_matrix = AdjMatrix(vertices)
adj_matrix.add_edge('A', 'B', 1)
adj_matrix.add_edge('A', 'C', 2)
adj_matrix.add_edge('B', 'C', 3)
adj_matrix.add_edge('B', 'D', 4)
adj_matrix.add_edge('C', 'E', 5)
adj_matrix.add_edge('D', 'E', 6)
adj_matrix.print_matrix()
```
输出结果:
```
0 1 2 0 0
0 0 3 4 0
0 0 0 0 5
0 0 0 0 6
0 0 0 0 0
```
其中,每一行和每一列代表一个顶点,矩阵中的数值表示边的权重。如果没有边相连,则对应位置的值为 0。
阅读全文