码迷,mamicode.com
首页 > 其他好文 > 详细

BFS & DFS

时间:2020-05-03 18:19:06      阅读:48      评论:0      收藏:0      [点我收藏+]

标签:color   dfs   queue   tar   next   一个   nod   des   pop   

 1 graph = {
 2     A:[B,C],
 3     B:[A,C,D],
 4     C:[A,B,D,E],
 5     D:[B,C,E,F],
 6     E:[C,D],
 7     F:[D]
 8 }
 9 def BFS(graph,start):
10     queue = []
11     queue.append(start)
12     seen = set()       #使用集合的效率要比使用list的效率高
13     seen.add(start)
14     while len(queue)>0:     #queue不为空的时候
15         vertex = queue.pop(0)
16         next_nodes = graph[vertex]
17         for w in next_nodes:
18             if w not in seen:
19                 queue.append(w)
20                 seen.add(w)     #将见过的添加进去
21         print(vertex)
22 def DFS(graph,start):
23     stack = []
24     stack.append(start)
25     seen = set()       #使用集合的效率要比使用list的效率高
26     seen.add(start)
27     while len(stack)>0:     #stack不为空的时候
28         vertex = stack.pop()        #由于是栈所以弹出最后一个元素
29         next_nodes = graph[vertex]
30         for w in next_nodes:
31             if w not in seen:
32                 stack.append(w)
33                 seen.add(w)     #将见过的添加进去
34         print(vertex)
35 print(BFS)
36 BFS(graph,E)
37 print(**100)
38 print(DFS)
39 DFS(graph,E)

 

BFS & DFS

标签:color   dfs   queue   tar   next   一个   nod   des   pop   

原文地址:https://www.cnblogs.com/Halo-zyh-Go/p/12822559.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!