深度优先遍历
深度优先遍历(Depth First Search),简称DFS,其原则是,沿着一条路径一直找到最深的那个节点,当没有子节点的时候,返回上一级节点,寻找其另外的子节点,继续向下遍历,没有就向上返回一级,直到所有的节点都被遍历到,每个节点只能访问一次。
深度优先遍历的思想应用
八皇后问题
八皇后问题,其实也可以理解成一种树,只是这个树每一层可以有8个节点。第
r
o
w
row
row层第
c
o
l
u
m
n
column
column列计算,需要继续下一层的每个节点尝试,如果有一个节点找到了,则沿着该节点继续查找,直到找到n层(n个皇后)
找到n层或者无法放置,则回退到上一层的下一个节点。
以4个皇后为例,选定一个节点,然后可以放置的下一层节点都是他的子节点,然后子节点继续往下找,找不到,则回退到上一层。