深度语言搜索(DFS),广度语言搜索(BFS),树与STL之间的相互联系。(还需要完善)

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

讲到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写在了纸上

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值