- 題目用到的圖
- 具體代碼
"""
Author: leadingme
Mail:[email protected]
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]