复习(预习)人工的时候看到对BFS和DFS这样的理解,一目了然,很清晰,比我以前理解的高明多了,所以想记录下来:
BFS:
(1) 令N为一个由初始状态构成的表。
(2) 若N为空退出,标志失败
(3) 令n为N中第一个节点,将n从N中删除。
(4) 若n是目标,则退出,标志成功。
(5) 若n不是目标,将n的后继节点加入到N的末端,转(2)。
DFS:
(1) 令N为一个由初始状态构成的表。
(2) 若N为空退出,标志失败
(3) 令n为N中第一个节点,将n从N中删除。
(4) 若n是目标,则退出,标志成功。
(5) 若n不是目标,将n的后继节点加入到N的首部,转(2)。
区别只在于后继节点插入表的位置;
DFS这样实现比起递归,我觉得这种实现方法更清晰,而且也会更少的回溯。