Python+图结构
时间: 2023-12-22 10:27:53 浏览: 26
Python中可以使用邻接表或邻接矩阵来表示图结构。下面是使用邻接表表示图的示例代码:
```python
class Graph:
def __init__(self, n_vertices):
self._n_vertices = n_vertices
self._adj = [[] for _ in range(n_vertices)]
def add_edge(self, s, t):
self._adj[s].append(t)
self._adj[t].append(s) # 如果是无向图,还需要添加这一行
def get_adj(self, s):
return self._adj[s]
```
上述代码中,`Graph`类表示一个无向图,其中`_n_vertices`表示图中节点的数量,`_adj`是一个邻接表,表示每个节点的邻居节点。`add_edge`方法用于向图中添加一条边,`get_adj`方法用于获取某个节点的邻居节点列表。
下面是使用邻接矩阵表示图的示例代码:
```python
class Graph:
def __init__(self, n_vertices):
self._n_vertices = n_vertices
self._matrix = [[0] * n_vertices for _ in range(n_vertices)]
def add_edge(self, s, t):
self._matrix[s][t] = 1
self._matrix[t][s] = 1 # 如果是无向图,还需要添加这一行
def get_adj(self, s):
return [i for i in range(self._n_vertices) if self._matrix[s][i] == 1]
```
上述代码中,`Graph`类表示一个无向图,其中`_n_vertices`表示图中节点的数量,`_matrix`是一个邻接矩阵,表示每个节点之间是否有边相连。`add_edge`方法用于向图中添加一条边,`get_adj`方法用于获取某个节点的邻居节点列表。