DFS:广度优先搜索
DFS所使用的数据结构为栈,每次都需要遍历到最底层,无法遍历后回溯到上一层,然后寻找其他分支,直到所有分支都遍历后,再回溯上一层。以此循环。BFS需要记录从开始到结束结点的元素值,以树为例,需要记录根节点到某一叶子结点的元素值,故需要的空间大小为O(h)
BFS:深度优先搜索
BFS所使用的数据结构为队列,每次会将已经搜索过的结点的所有分支全部搜索一遍,以树为例:BFS会从根节点开始,一层一层的遍历所有结点,由于需要记录所有结点,故需要的空间大小为O(2 h次方)
由于BFS是一层一层的进行扩展的,所以BFS第一次搜到的某个点就是最短距离能搜到的这个点。故可以用BFS来计算最短距离。但DFS不可以用来计算最短距离。