定义一个python邻接表类
时间: 2023-09-27 21:08:23 浏览: 56
好的,您可以使用以下代码定义一个python邻接表类:
```
class AdjacencyList:
def __init__(self, vertices):
self.vertices = vertices
self.adj_list = {v: [] for v in vertices}
def add_edge(self, u, v):
self.adj_list[u].append(v)
self.adj_list[v].append(u)
def __repr__(self):
s = ""
for v in self.vertices:
s += f"{v}: {', '.join(str(x) for x in self.adj_list[v])}\n"
return s
```
请问是否还有其他问题需要我回答呢?
相关问题
用python实现获得一个图的邻接表
可以使用Python中的字典来实现获得一个图的邻接表。假设图有n个节点,邻接表adj的大小为n,其中adj[i]表示节点i的邻居列表。下面是一个示例代码:
```python
# 定义一个图,用边集表示,例如:{(0,1), (1,2), (2,0)}
edges = [(0, 1), (1, 2), (2, 0)]
n = 3
# 初始化邻接表为空列表
adj = [[] for _ in range(n)]
# 将边集中的边加入邻接表
for i, j in edges:
adj[i].append(j)
adj[j].append(i) # 无向图需要对称
# 输出邻接表
print(adj)
```
输出结果为:
```
[[1, 2], [0, 2], [1, 0]]
```
其中,第i个元素表示节点i的邻居列表,例如,adj[0]=[1,2]表示节点0的邻居为节点1和节点2。
python实现邻接表
以下是Python实现邻接表的示例代码:
```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, source, dest):
self.adj_list[source].append(dest)
self.adj_list[dest].append(source)
def print_adj_list(self):
for i in range(self.num_vertices):
print(i, ":", " -> ".join([str(x) for x in self.adj_list[i]]))
```
这个示例代码中,我们定义了一个Graph类,其中包含了三个方法:
1. `__init__`方法:初始化一个空的邻接表,其中`num_vertices`表示图中顶点的数量,`adj_list`是一个列表,用于存储每个顶点及其相邻的所有顶点。
2. `add_edge`方法:用于向邻接表中添加一条边,其中`source`和`dest`分别表示边的起点和终点。
3. `print_adj_list`方法:用于打印邻接表,其中对于每个顶点,我们将其编号以及与其相邻的所有顶点打印出来。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)