广度优先搜索
深度优先搜索
假设a点为起始点
bfs 结果为: A BC DE F
dfs 结果为:ACEDF B
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):
flag=[]
flag.append(s)
memory=[]
memory.append(s)
while(len(flag)>0):
a=flag.pop(0)
b=graph[a]
for i in b:
if i not in memory:
flag.append(i)
memory.append(i)
print(a)
def dfs(graph,s):
flag=[]
flag.append(s)
memory=[]
memory.append(s)
while(len(flag)>0):
a=flag.pop()#这里变成从最后一个取
b=graph[a]
for i in b:
if i not in memory:
flag.append(i)
memory.append(i)
print(a)
bfs(graph,"a")
dfs(graph,"a")