邻接表转化为邻接矩阵完整代码
时间: 2023-10-14 13:56:30 浏览: 62
下面是将邻接表转换为邻接矩阵的完整代码示例:
```python
class Graph:
def __init__(self, vertices):
self.vertices = vertices
self.adj_list = [[] for _ in range(vertices)]
def add_edge(self, src, dest):
self.adj_list[src].append(dest)
self.adj_list[dest].append(src)
def adjacency_matrix(self):
matrix = [[0] * self.vertices for _ in range(self.vertices)]
for i in range(self.vertices):
for j in self.adj_list[i]:
matrix[i][j] = 1
return matrix
# 创建一个有5个节点的图
g = Graph(5)
g.add_edge(0, 1)
g.add_edge(0, 4)
g.add_edge(1, 2)
g.add_edge(1, 3)
g.add_edge(1, 4)
g.add_edge(2, 3)
g.add_edge(3, 4)
adj_matrix = g.adjacency_matrix()
for row in adj_matrix:
print(row)
```
这个代码示例中,我们定义了一个Graph类,其中包含了邻接表和邻接矩阵的转换方法。我们首先创建一个具有5个节点的图,并添加了一些边。然后调用adjacency_matrix方法将邻接表转换为邻接矩阵,并打印出结果。输出结果为:
```
[0, 1, 0, 0, 1]
[1, 0, 1, 1, 1]
[0, 1, 0, 1, 0]
[0, 1, 1, 0, 1]
[1, 1, 0, 1, 0]
```
这个邻接矩阵表示了图中节点之间的连接关系,矩阵中的1表示对应位置的两个节点之间有边,0表示没有边。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)