关于图的邻接表的操作代码
时间: 2023-06-10 16:04:41 浏览: 61
以下是关于图的邻接表的基本操作代码示例:
```python
class Graph:
def __init__(self, vertices):
self.vertices = vertices
self.adj_list = {}
# 初始化邻接表
for vertex in vertices:
self.adj_list[vertex] = []
# 添加边
def add_edge(self, u, v):
self.adj_list[u].append(v)
self.adj_list[v].append(u)
# 打印邻接表
def print_graph(self):
for vertex in self.vertices:
print(vertex, "->", self.adj_list[vertex])
# 示例
vertices = ["A", "B", "C", "D", "E"]
graph = Graph(vertices)
graph.add_edge("A", "B")
graph.add_edge("A", "C")
graph.add_edge("B", "D")
graph.add_edge("C", "E")
graph.print_graph()
# 输出
# A -> ['B', 'C']
# B -> ['A', 'D']
# C -> ['A', 'E']
# D -> ['B']
# E -> ['C']
```
这段代码定义了一个图的类,包含了初始化邻接表、添加边和打印邻接表三个基本操作。其中,`add_edge` 方法用于添加边,这里采用的是无向图,因此在邻接表中同时添加两个节点的边。`print_graph` 方法用于打印邻接表。示例输出了一个图的邻接表,输出结果中,每个节点后面跟着一个列表,表示这个节点与哪些节点有边相连。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)