python无向图对象转化为邻接表
时间: 2023-08-18 09:07:00 浏览: 90
您可以使用以下代码将无向图对象转换为邻接表:
```python
from collections import defaultdict
class Graph:
def __init__(self, vertices):
self.V = vertices
self.graph = defaultdict(list)
def add_edge(self, u, v):
self.graph[u].append(v)
self.graph[v].append(u)
def to_adjacency_list(self):
adjacency_list = []
for vertex in range(self.V):
adjacency_list.append([vertex] + self.graph[vertex])
return adjacency_list
# 示例用法
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_list = g.to_adjacency_list()
print(adj_list)
```
这段代码中,我们定义了一个 Graph 类来表示无向图。通过调用 `add_edge` 方法,我们可以添加边到图中。在 `to_adjacency_list` 方法中,我们遍历图中的每个顶点,并将顶点及其邻居节点的列表添加到邻接表中。最后,打印出邻接表。
以上代码输出的结果为:
```
[[0, 1, 4], [1, 0, 2, 3, 4], [2, 1, 3], [3, 1, 2, 4], [4, 0, 1, 3]]
```
这个邻接表的含义是:顶点0与顶点1、4相连,顶点1与顶点0、2、3、4相连,以此类推。
阅读全文