【hihoCoder】1049.后序遍历
2016-04-14 19:57
441 查看
问题:http://hihocoder.com/problemset/problem/1049?sid=767510
已知一棵二叉树的前序遍历及中序遍历结果,求后序遍历结果
思路:
前序:根-左子树-右子树
中序:左子树-根-右子树
后序:左子树-右子树-根
递归的方法,从前序得到根结点,然后根据中序发现两个子树。先求子树的后序遍历结果,再把当前的根添加在最后即可。
View Code
已知一棵二叉树的前序遍历及中序遍历结果,求后序遍历结果
思路:
前序:根-左子树-右子树
中序:左子树-根-右子树
后序:左子树-右子树-根
递归的方法,从前序得到根结点,然后根据中序发现两个子树。先求子树的后序遍历结果,再把当前的根添加在最后即可。
#include <iostream> #include <string> using namespace std; void toPostOrder(string preOrder, string inOrder, string& postOrder, int len){ if (len <= 0) return; int i = 0; for (; i < len; i++) if (preOrder[0] == inOrder[i]) break; toPostOrder(preOrder.substr(1), inOrder, postOrder, i); toPostOrder(preOrder.substr(i + 1), inOrder.substr(i + 1), postOrder, len - i - 1); postOrder.push_back(preOrder[0]); } int main(){ string preOrder, inOrder; cin >> preOrder >> inOrder; string postOrder; toPostOrder(preOrder, inOrder, postOrder, preOrder.length()); cout<<postOrder<<endl; return 0; }
View Code
相关文章推荐
- 实现从ActiveX调用网页中的javascript函数.
- 关于MySQL的安装及入门操作
- Ruby on Rails 路由解析
- C++中operator的主要用法
- 299. Bulls and Cows
- qsort函数用法
- logistic回归详解一:为什么要使用logistic函数
- 区分中英文字符的两种方法
- 有一种青春,叫科比
- 音乐播放器
- Java项目中使用OpenOffice转PDF
- 推荐一个免费的论文查重网站PaperFree
- Java多线程--CyclicBarrier使用详解
- HDU2955(01背包)
- 用IE调试ActiveX控件的相关设置(无法启动调试信息,找不到Microsoft Internet Explorer的解决方法)
- 用SAM建广义后缀树
- 面试题85:按指定精度打印开方后的结果
- MySQL 忘记密码:skip-grant-tables
- 大端模式和小端模式
- linux后台面试题和答案