用python实现BFS -- 算法导论
2020-06-06 07:47
549 查看
代码如下:
color = {} pi = {} d = {} G = {'S':('R','W'), 'W':('S','T', 'X'), 'R':('S','V'), 'V':('R'), 'T':('U','W', 'X'), 'X':('W','T', 'U', 'Y'), 'U':('T','X', 'Y'), 'Y':('X','V'), } def main(): BFS(G, 'S') print(color) print(pi) print(d) def BFS(G, s): global color, pi, d, Q for v in G: color[v] = 'white' pi[v] = 'NIL' d[v] = float('inf') color[s] = 'gray' pi[s] = 'NIL' d[s] =0 Q = 5*['0'] ENQUEUE(Q, s) while(Qhead != Qtail): u = DEQUEUE(Q) for v in G[u]: if color[v] == 'white': color[v] = 'gray' d[v] = d[u] + 1 pi[v] = u ENQUEUE(Q, v) color[u] = 'black' def ENQUEUE(Q, x): global Qtail Q[Qtail] = x if Qtail == len(Q) - 1: Qtail = 0 else: Qtail = Qtail + 1 def DEQUEUE(Q): global Qhead x = Q[Qhead] if Qhead == len(Q) - 1: Qhead = 0 else: Qhead = Qhead + 1 return x Qhead = 0
图示
算法导论(第三版)的BFS伪代码
相关文章推荐
- 【算法导论】八皇后问题的算法实现(C、MATLAB、Python版)
- python实现快速排序 --算法导论
- 算法导论:分治法,python实现合并排序MERGE-SORT
- python实现DFS -- 算法导论
- python实现归并排序 --算法导论
- [算法导论]二叉查找树的实现 @ Python
- python实现计数排序 --算法导论
- 【算法导论】八皇后问题的算法实现(C、MATLAB、Python版)
- 算法导论快速排序python实现
- Java实现算法导论中图的广度优先搜索(BFS)和深度优先搜索(DFS)
- 用Python实现算法导论中的算法 序
- 【算法导论】动态规划之矩阵链乘法Python实现
- python实现算法导论中的算法(传送门)
- python实现堆排序--算法导论
- [笔记]BFS算法的python实现
- [算法导论]BFS @ Python
- 算法导论详解(1) 第二章算法基础+python实现
- 生成目录结构算法的bash, perl和python实现
- 矩阵链乘法(最小乘法数) (动态规划算法实现)算法导论p201
- 算法导论学习笔记(1)——快排中hoarePartition的实现(问题已解决)