2016/11/3 1003. 二叉树后序遍历
来源:互联网 发布:微信端口 编辑:程序博客网 时间:2024/06/11 16:09
思路:http://www.cnblogs.com/fzhe/archive/2013/01/07/2849040.html
根据二叉树的前序和中序得到后序,只需要在中序中找到与前序第一个相同的节点值,即根节点,然后把它分为左右子树递归即可。左子树递归时前序遍历需要去掉第一个,右子树递归时则两个序列都要去掉根节点及其左边的内容。
#include <iostream> #include <fstream> #include <string> using namespace std;struct TreeNode{ struct TreeNode* left; struct TreeNode* right; char elem;};void BinaryTreeFromOrderings(char* inorder, char* preorder, int length){ if(length == 0) { //cout<<"invalid length"; return; } TreeNode* node = new TreeNode;//Noice that [new] should be written out. node->elem = *preorder; int rootIndex = 0; for(;rootIndex < length; rootIndex++) { if(inorder[rootIndex] == *preorder) break; } //Left BinaryTreeFromOrderings(inorder, preorder +1, rootIndex); //Right BinaryTreeFromOrderings(inorder + rootIndex + 1, preorder + rootIndex + 1, length - (rootIndex + 1)); cout<<node->elem<<endl; return;}int main(int argc, char* argv[]){ printf("Hello World!\n"); char* pr="GDAFEMHZ"; char* in="ADEFGHMZ"; BinaryTreeFromOrderings(in, pr, 8); printf("\n"); return 0;}
0 0
- 2016/11/3 1003. 二叉树后序遍历
- 二叉树后序遍历
- 二叉树后序遍历
- 二叉树后序遍历(递归)
- 二叉树后序遍历
- 数据结构 -- 二叉树后序遍历
- 二叉树后序遍历
- 二叉树后序遍历
- 二叉树后序遍历
- 二叉树后序遍历
- 二叉树后序遍历
- 二叉树后序遍历算法
- 二叉树后序遍历实例
- 二叉树后序遍历
- 二叉树后序遍历
- binTreePosterorderTraversal二叉树后序遍历
- hdu1710二叉树后序遍历
- 二叉树后序遍历
- Maven的安装和其目录结构
- centos 7 安装
- ARC下OC对象和CF对象之间的桥接(bridge)
- JSTL应用
- 矩阵A的值域空间和其零空间
- 2016/11/3 1003. 二叉树后序遍历
- MySQL查询优化之explain的深入解析
- 动画代码笔记
- 波、波长以及频率的关系
- ubuntu14.4.04 查看CPU/GPU 内存使用情况
- ftp服务器端的安装及配置
- exec函数族的使用
- jsp中页面定时自动刷新跳转和按F5刷新跳转
- iOS根据陀螺仪等传感器获得夹角等数据