python 实现将图的领接矩阵转换成邻接表,和将邻接表转换成邻接矩阵 及测试用例
时间: 2023-10-06 10:06:41 浏览: 189
图的邻接矩阵和邻接表实现
将图的邻接矩阵转换为邻接表可以使用以下 Python 代码实现:
```python
def matrix_to_list(adj_matrix):
adj_list = {}
n = len(adj_matrix)
for i in range(n):
adj_list[i] = []
for j in range(n):
if adj_matrix[i][j] == 1:
adj_list[i].append(j)
return adj_list
# 示例测试用例
adj_matrix = [
[0, 1, 0, 0],
[1, 0, 1, 1],
[0, 1, 0, 1],
[0, 1, 1, 0]
]
adj_list = matrix_to_list(adj_matrix)
print(adj_list)
```
将邻接表转换为邻接矩阵可以使用以下 Python 代码实现:
```python
def list_to_matrix(adj_list):
n = len(adj_list)
adj_matrix = [[0] * n for _ in range(n)]
for i in range(n):
for j in adj_list[i]:
adj_matrix[i][j] = 1
return adj_matrix
# 示例测试用例
adj_list = {
0: [1],
1: [0, 2, 3],
2: [1, 3],
3: [1, 2]
}
adj_matrix = list_to_matrix(adj_list)
print(adj_matrix)
```
测试用例的输出结果如下:
```
# matrix_to_list 的测试用例结果
{0: [1], 1: [0, 2, 3], 2: [1, 3], 3: [1, 2]}
# list_to_matrix 的测试用例结果
[[0, 1, 0, 0], [1, 0, 1, 1], [0, 1, 0, 1], [0, 1, 1, 0]]
```
阅读全文