Python中使用字典来表示图(Graph)的邻接表
比如以下代码:
graph = { "A": ["B", "C"], "B": ["A", "C", "D"], "C": ["A", "B", "D"], "D": ["B", "C"] }
表示有四个节点:A、B、C、D,它们之间的边分别是:
- A与B、C相连
- B与A、C、D相连
- C与A、B、D相连
- D与B、C相连
可以看出,这就是一个无向图。其中,A、B、C、D对应的值都是一个列表,这个列表中存放着与当前节点相连的其他节点。
如果要添加一个新的节点E,并且它与节点B和D相连,代码如下:
graph["E"] = ["B", "D"] graph["B"].append("E") graph["D"].append("E")
其中,首先在字典中添加键为"E"的项,并且它的值是一个列表;然后将节点B和D的列表中都添加节点E。这样,图中就增加了一个节点E,并且它与节点B和D相连。
在删除节点时,需要同时删除与之相连的边,例如要删除节点B,代码如下:
for node in graph["B"]: graph[node].remove("B") del graph["B"]
其中,首先需要遍历节点B的列表,删除其中与B相连的节点;然后再从字典中删除键为B的项。这样,图中就删除了节点B,并且与之相连的边也一并删除了。
相关文章