用python实现获得一个图的邻接表,并把邻接表存入字典
时间: 2023-11-05 22:12:45 浏览: 101
假设我们的图使用邻接表存储,其中每个节点用一个数字表示,邻接表是一个字典,键是每个节点,值是一个列表,存储与该节点相邻的所有节点。下面是一个示例代码:
```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的代码实现:
```python
graph = {} # 存储邻接表的字典
# 定义一个函数,根据输入的边列表来生成邻接表
def build_adjacency_list(edges):
for edge in edges:
# 将边的两个顶点分别存入邻接表中
if edge[0] not in graph:
graph[edge[0]] = []
graph[edge[0]].append(edge[1])
if edge[1] not in graph:
graph[edge[1]] = []
graph[edge[1]].append(edge[0])
return graph
# 示例:输入边列表
edges = [(0, 1), (1, 2), (2, 3), (3, 0)]
# 生成邻接表
graph = build_adjacency_list(edges)
# 打印邻接表
print(graph)
```
输出结果为:
```
{0: [1, 3], 1: [0, 2], 2: [1, 3], 3: [2, 0]}
```
这个字典中,每个键表示一个顶点,对应的值则是与该顶点相邻的顶点列表。由于是无向图,因此每条边都需要在两个顶点的邻接表中都存储一遍。
用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]
```
这里我们定义了一个示例图,包括了四个节点和四条边。我们使用字典来表示邻接表,其中键是每个节点,值是一个列表,存储与该节点相邻的所有节点。最后,我们遍历邻接表,输出每个节点及其邻居节点的信息。
阅读全文