使用字典存储下面这个图结构,编写图的遍历算法,对给定图进行深度优先遍历。
Hint: 结点作为字典的Key,结点的邻居作为字典的Value,从而构成一个图。
递归实现图的深度优先遍历(DFS)
1、字典graph存储图,存储顺序a-z。
2、首先以一个未被访问过的顶点作为起始顶点,沿当前顶点的边走到未访问过的顶点。(访问的顺序a-z)
3、当没有未访问过的顶点时,则回到上一个顶点,继续试探别的顶点,直至所有的顶点都被访问过。
def DFS(graph,x,list): # 递归实现图的深度优先遍历
i = 0 # 若结点的相邻结点都被遍历,i回到上一个结点
for y in graph[x]: # 结点的相邻结点遍历
i += 1
if y not in list: # 如果此节点未被遍历,则加入list
list.append(y)
DFS(graph,y,list) # 递归,继续遍历
else:
if i == len(graph[x]):
return
return
result = '' # 连接最后结果的字符串
graph = {
'a': ['b',