洛谷 P1030 求先序排列 DFS

本文介绍了如何根据中序和后序遍历序列推导出先序序列,重点讲解了使用find()和substr()函数在深度优先搜索(DFS)中的应用,以及在递归函数中的使用条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路:

根据中序序列(左根右)和后序序列(左右根)可以推出来先序序列。后序序列最后一个是根,让后在中序序列中找到根,继而可找到左右子树。再在后序序列中找到左右子树,继而可继续找到根。代码思路:1.输出根节点2.找到左右子树3.对左右子树递归调用dfs。

反思:

1.学习到了string类的find()函数,查找某个字符返回字符的下标。eg:str.find('b')。在str中查找b字符。如果不止一个b,则返回第一个的位置。如果未找到则返回npos。如果想所有位置都查找到可以循环处理,且查找的时候从查到的下一个位置开始。eg:str.find('b',3)。从下标3开始查找b。

2.学习了string类的substr函数,提取str字符串的子字符串。eg:str.substr(pos,len).提取从pos位置开始长度为len的字符串。eg:str.substr(pos)。提取从pos位置开始的后面所有字符。

需要使用<string>头文件夹。

3.在dfs函数中还需要加上dfs函数执行判断条件。字符串长度>0。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值