邻接表的使用
时间: 2023-07-11 10:05:45 浏览: 51
邻接表是一种常用的图的表示方法,它将每个节点的出边存储为一个链表。具体来说,邻接表由一个数组和一组链表组成,数组中的每个元素对应一个节点,链表中存储该节点的所有出边所连接的节点。
使用邻接表可以方便地获取某个节点的出边信息,也可以快速找到某个节点的所有邻居节点。在实现图的遍历、最短路径、最小生成树等算法时,邻接表也是常用的数据结构之一。
以下是一个使用邻接表表示图的示例代码:
```python
class Graph:
def __init__(self, num_vertices):
self.num_vertices = num_vertices
self.adj_list = [[] for _ in range(num_vertices)]
def add_edge(self, src, dest):
# 添加一条从src到dest的边
self.adj_list[src].append(dest)
def get_neighbors(self, vertex):
# 获取vertex的所有邻居节点
return self.adj_list[vertex]
```
以上代码中,`Graph`类的构造函数接受一个参数`num_vertices`,表示图中节点的数量。在构造函数中,我们初始化了一个大小为`num_vertices`的空列表`adj_list`,用于存储每个节点的出边信息。
`add_edge`方法用于添加一条从`src`节点到`dest`节点的边,它将`dest`节点加入`src`节点的邻接表中。
`get_neighbors`方法接受一个参数`vertex`,表示要获取邻居节点的节点。它返回`vertex`节点的邻接表,即所有连接到`vertex`的节点。
这样,我们就可以使用邻接表来表示和操作图了。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)