VIJOS P1132求二叉树的先序序列
2015-09-23 20:23
288 查看
描述
给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度≤8)。
格式
输入格式
第一行为二叉树的中序序列第二行为二叉树的后序序列
输出格式
一行,为二叉树的先序序列
样例1
样例输入1[复制]
BADC BDCA
样例输出1[复制]
ABCD
限制
每个测试点1s
解题思想:
给定了二叉树的中序和后序遍历,那么后序遍历的最后一个元素就是树的根。而对应
的中序遍历中根的左右即为左右子树,分别递归左右子树,即可得到二叉树的先序遍历。
具体代码如下:
#include <iostream> #include <cstring> using namespace std; string s1,s2; void dfs(string s1,string s2) { char str; if (s1.empty()) return ; str=s2[s2.size()-1]; cout<<str; int n=0; while (s1 !=str) n++; dfs(s1.substr(0,n),s2.substr(0,n)); dfs(s1.substr(n+1,s1.size()-n-1),s2.substr(n,s2.size()-n-1)); } int main() { cin>>s1; cin>>s2; dfs(s1,s2); return 0; }
相关文章推荐
- 文章标题
- 蓝桥杯 地宫寻宝 带缓存的DFS
- 在配置WCF服务的时候出现的错误总结
- Lock synchronized 详细讲解
- Maven项目不打包*.hbm.xml文件
- java学习之IO其他流
- 通过Visual Studio快速生成Json或XML反序列化类代码
- iOS:CoreData数据库的使用四(数据库和UITableViewController以及NSFetchedResultsController一起使用)
- [转载]sqlserver、Mysql、Oracle三种数据库的优缺点总结
- 蛇形算法
- 如何使用反编译软件得到源码
- 关于栈的操作
- 测试杂谈
- snprintf()和sprintf()学习
- Start React Native In Android
- 自定义TableViewCell内容
- Android Studio调用第三方动态库
- 2015 ACM/ICPC Asia Regional Shenyang Online
- 数据结构与算法分析(c++版) #8 顺序栈和链式栈
- OSSIM识别APT的三板斧