无向图的广度优先搜索
程序员文章站
2022-05-23 10:06:48
...
无向图的广度优先搜索
graph = {}
graph['wt'] = ['a', 'b', 'c']
graph['a'] = ['d']
graph['d'] = []
graph['b'] = ['t', 1]
graph['t'] = []
graph['c'] = ['e', 1]
graph['e'] = []
graph[1] = []
def bfs(name):
search_queue = graph[name]
searched = []
while search_queue:
for i in range(len(search_queue)-1):
if not search_queue[i] in searched:
if search_queue[i] == 1:
print('i find f')
else:
search_queue.pop(i)
searched.append(search_queue[i])
search_queue += graph[search_queue[i]]
else:
search_queue.pop(i)
bfs('wt')
tips:值得注意的是要考虑一种情况,就是当多个元素只想同一个元素的时候,会做无用功,所以会先考虑该元素是否已经检查过了,如果已经检查过了,就不需要再查一次,节省计算机资源。
推荐阅读
-
图的两种存储结构及四种形态——邻接矩阵、邻接表;有向图、无向图、有向网、无向网。
-
Java A*算法搜索无向图最短路径
-
无向图 深度优先遍历 c语言实现
-
狄克斯拉特算法。 适用于,加权有向无环图,且无负权边,的最短路径计算。
-
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
-
可能是目前为止最为详细的深度优先搜索DFS和广度优先搜索BFS算法分析
-
Java数据结构与算法:图、图的概念、深度优先搜索DFS、广度优先搜索BFS、思路分析、代码实现
-
【数据结构】图的遍历——深度优先搜索DFS、广度优先搜索BFS
-
数据结构与算法————图的遍历DFS深度优先搜索和BFS广度优先搜索
-
图的深度优先搜索和广度优先搜索