#定义一个图的结构
graph={
'A':['B','C'],
'B':['A','C','D'],
'C':['A','B','D','E'],
'D':['B','C','E','F'],
'E':['C','D'],
'F':['D']
}
from collections import deque
def DFS(graph, s): # graph是图,s是开始结点
stack = deque() # 栈
stack.appendleft(s) # 开始结点入栈
v = set()
v.add(s) # 无序添加
# print(s, end=' ')
flag = 0 # 标记 jn
while len(stack) > 0: # 栈非空
flag = 0
vertex = stack[0] # 查看栈顶元素
nodes = graph[vertex] # 访问与之相连的结点列表
for w in nodes:
if w not in v:
stack.appendleft(w) # 未被访问的相连的下一个结点入栈
v.add(w) # 标记已访问
flag = 1 # 存在未被访问的相连结点
# print(w, end=' ')
print(vertex + '->' + w)
break
if flag == 0: # 不存在未被访问的相连结点,回溯
stack.popleft()
输出查找路径序列
A->B
B->C
C->D
D->E
D->F