无向图的邻接矩阵转化为邻接表
时间: 2023-10-18 17:07:42 浏览: 143
将无向图的邻接矩阵转化为邻接表,可以按照以下步骤进行:
1. 创建一个包含n个空链表的列表,其中n为图中的顶点数。
2. 对于邻接矩阵中每一个非零元素a[i][j],将顶点i和j之间的边加入到i对应的链表中,并将边的另一个端点j也加入到i对应的链表中。
3. 因为是无向图,所以对于邻接矩阵中的每一个非零元素a[i][j],还需要将顶点j和i之间的边加入到j对应的链表中,并将边的另一个端点i也加入到j对应的链表中。
4. 最终得到的列表就是该无向图的邻接表表示。
下面是一个Python示例代码:
```python
def adj_matrix_to_adj_list(adj_matrix):
n = len(adj_matrix)
adj_list = [[] for _ in range(n)]
for i in range(n):
for j in range(n):
if adj_matrix[i][j] != 0:
adj_list[i].append(j)
adj_list[i].append(adj_matrix[i][j])
adj_list[j].append(i)
adj_list[j].append(adj_matrix[i][j])
return adj_list
```
其中,adj_matrix是一个n*n的邻接矩阵,adj_list是转化后的邻接表。
阅读全文