用python实现获得一个图的邻接表
时间: 2023-11-05 11:12:43 浏览: 81
可以使用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
# 定义一个示例图的边集合
edges = [(0, 1), (0, 2), (1, 2), (2, 3), (3, 3)]
# 定义一个空字典,用于存储邻接表
graph = {}
# 遍历边集合,将每个节点的邻居加入邻接表中
for edge in edges:
node1, node2 = edge
if node1 not in graph:
graph[node1] = [node2]
else:
graph[node1].append(node2)
# 输出邻接表
for node, neighbors in sorted(graph.items()):
print(f"节点 {node} 的邻居是 {neighbors}")
```
输出结果为:
```
节点 0 的邻居是 [1, 2]
节点 1 的邻居是 [2]
节点 2 的邻居是 [3]
节点 3 的邻居是 [3]
```
这里我们定义了一个示例图,包括了四个节点和五条边。我们使用字典来表示邻接表,其中键是每个节点,值是一个列表,存储与该节点相邻的所有节点。最后,我们遍历邻接表,输出每个节点及其邻居节点的信息。注意,在遍历字典时,我们使用了 `sorted` 函数,按照节点编号从小到大排序输出。
用python实现获得一个图的邻接表,输出结果存入字典中
假设我们的图使用邻接表存储,其中每个节点用一个数字表示,邻接表是一个字典,键是每个节点,值是一个列表,存储与该节点相邻的所有节点。下面是一个示例代码:
```python
# 定义一个示例图的邻接表
graph = {0: [1, 2], 1: [2], 2: [0, 3], 3: [3]}
# 输出邻接表
for node, neighbors in graph.items():
print(f"节点 {node} 的邻居是 {neighbors}")
```
输出结果为:
```
节点 0 的邻居是 [1, 2]
节点 1 的邻居是 [2]
节点 2 的邻居是 [0, 3]
节点 3 的邻居是 [3]
```
这里我们定义了一个示例图,包括了四个节点和四条边。我们使用字典来表示邻接表,其中键是每个节点,值是一个列表,存储与该节点相邻的所有节点。最后,我们遍历邻接表,输出每个节点及其邻居节点的信息。
阅读全文