讲到DFS和BFS我们要先引入树这个概念

是的,树这个东西和深度语言搜索,广度语言搜索有很大的关联,可以这么说,要是想要深入了解DFS和BFS这两个概念,也就是一定要知道树。
基本概念:
前序遍历:1,2,5,6,3,7,9,4,8
后序遍历:5,6,2,9,7,3,4,8,1
层次遍历:1,2,3,4,5,6,7,8,9
中序遍历只针对于二叉树来说。
深度语言搜索: 5, 6, 2, 9, 7, 3, 8, 4, 1
广度语言搜索: 1, 2, 3, 4, 5, 6, 7, 8, 9
这个是关于这棵树的一些数字顺序。
代码实现的思路:这个存放在栈和队列的过程是,定义一个结构体,在开拓栈和队列,实际上每个栈和队列的每个存放空间的元素背后都有一个地址,然后我们在当前节点往下指针,利用指针看看当前节点有没有孩子,有的话就继续往下搜索,然后符合条件的存放在栈和队列中。
DFS在这个树上的寻找的一些点,我们然后再开拓一个栈的数组,然后存到STL库的栈中。
BFS:广度语言搜索,就是遍历每个树上的点,也就是相当于for循环,每一层有几个点,就在这个层循环几次。然后搜索完全部打印出来。这时候我们要开拓一个c++的STL库里面的队列,即queue这个库,然后我们在进行广度语言搜索。

我把DFS和BFS写在了纸上


本文介绍了深度优先搜索(DFS)和广度优先搜索(BFS)在树结构中的应用,通过栈和队列的原理,以及它们在遍历过程中的不同策略。重点讲解了这两种搜索算法的基本概念、代码实现和适用场景。

被折叠的 条评论
为什么被折叠?



