【算法图解】——图、广度优先搜索并实现搜索
文章目录 图 无向图和有向图 广度优先算法 问题解决步骤 实现图 实现广度优先搜索 图 节点(node)和边(edge) 代表着一种 连接关系 解决的问题:最短路径,象棋中将对方将死最少步数 无向图和有向图 无向图互为 邻居 广度优先算法 通过图的连接关系,一步一步搜索 问题解决步骤 使用图建立问题模型 使用广度优先算法解决问题 实现图 利用 字典 实现图 注意: peggy是alice的邻居,但alice不是peggy的 """实现图——字典""" graph = { } graph [ 'you' ] = [ 'alice' , 'bob' , 'claire' ] graph [ 'bob' ] = [ 'anuj' , 'peggy' ] graph [ 'alice' ] = [ 'peggy' ] graph [ 'claire' ] = [ 'thom' , 'jonny' ] graph [ 'anuj' ] = [ ] # 他们都没有邻居,因为他们没有指向别人 graph [ 'peggy' ] = [ ] graph [ 'thom' ] = [ ] graph [ 'jonny' ] = [ ] 实现广度优先搜索 通过 队列 实现 创建双端队列 将你要搜索对象的关系网拉入队列 只要队列不空就搜索 先获取网中第一个人 判断是都检查过 判断是否满足搜索条件 不满足