- 题目用到的图
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/408507e3e62a227a3de6d188bfe5b705.png)
- 具体代码
"""
Author: leadingme
Mail:leadingme@qq.com
MyWebsite:leadingme.top
"""
from queue import Queue, LifoQueue
graph = {
"A": ["B", "C"],
"B": ["A","C","D"],
"C": ["A","B","D","E"],
"D": ["B","C","E","F"],
"E": ["C", "D"],
"F": ["D"]
}
def BFS(graph, s):
queue = Queue(maxsize=0)
queue.put(s)
seen = set()
seen.add(s)
parent = {s: None}
while queue.qsize() > 0:
vertex = queue.get()
nodes = graph[vertex]
for w in nodes:
if w not in seen:
queue.put(w)
seen.add(w)
parent[w] = vertex
return parent
def DFS(graph, s):
stack = LifoQueue(maxsize=0)
stack.put(s)
seen = set()
seen.add(s)
while stack.qsize() > 0:
vertex = stack.get()
nodes = graph[vertex]
for w in nodes:
if w not in seen:
stack.put(w)
seen.add(w)
print(vertex)
if __name__ == '__main__':
parent = BFS(graph, "A")
v = "D"
while v is not None:
print(v)
v = parent[v]