如何处理有向图的字典嵌套表示?
时间: 2024-09-25 09:06:32 浏览: 22
20151910042-刘鹏-DSA实验14-图结构实验1
对于有向图的字典嵌套表示,你可以稍微修改上面的概念。在每个顶点的字典中,键将不再是目标顶点而是指向源顶点的边,值则是边的长度。例如:
```python
directed_graph = {
'A': {'to_B': 5, 'to_C': 4},
'B': {'from_A': 5, 'to_D': 6},
'C': {'from_A': 4, 'from_B': 3, 'to_D': 8},
'D': {'from_B': 6, 'from_C': 8}
}
# 计算信息的函数需要相应地更新
def process_directed_graph(directed_graph):
num_vertices = len(directed_graph) # 顶点数
num_edges = sum(len(neighborhood) for vertex, neighborhood in directed_graph.items()) # 边的个数(每个顶点的入度)
len_edges = sum(edge_length for vertex, inbound in directed_graph.items() for edge, edge_length in inbound.items()) # 边的总长度,只考虑入边
print(f"顶点数:{num_vertices}")
print(f"边的个数(入边):{num_edges}")
print(f"边的总长度(仅入边):{len_edges}")
process_directed_graph(directed_graph)
```
这里我们跟踪的是每个顶点的“入度”(有多少条边指向它),而不是出度。如果你想得到总的边数(包括出度),你需要再次遍历整个图,计算每个顶点的出度。
阅读全文