二叉树——中序、后序遍历得先序遍历
2015-12-23 20:12
267 查看
#include <iostream> #include <cstdio> #include <cstring> #include <string> #include <fstream> #include <algorithm> using namespace std; struct TreeNode { struct TreeNode* left; struct TreeNode* right; char elem; }; void BinaryTreeFromOrderings(char* inorder, char* aftorder, int length) { if (length == 0) return; TreeNode* node = new TreeNode; node->elem = *(aftorder+length-1); cout << node->elem; int rootIndex = 0; for (;rootIndex < length;rootIndex++) if (inorder[rootIndex] == *(aftorder + length - 1)) break; BinaryTreeFromOrderings(inorder, aftorder, rootIndex); BinaryTreeFromOrderings(inorder + rootIndex + 1, aftorder + rootIndex, length - (rootIndex + 1)); return; } int main() { char *aft = "AEFDHZMG"; char *in = "ADEFGHMZ"; BinaryTreeFromOrderings(in, aft, 8); cout << endl; //Result is:GDAFEMHZ return 0; }
相关文章推荐
- 归并排序
- Hadoop三种安装模式
- Java中super的几种用法及与this的区别
- unity3d 理解刚体(Rigidbody)和碰撞体(Collider)以及触发器(Is Trigger),边学边更新
- 排列问题
- 排列问题
- Java ArrayList的equals方法
- 死机案例分析1
- android中Bitmap用法(显示,保存,缩放,旋转)实例分析
- 多线程与线程同步问题
- Oracle表空间的一些介绍
- Dockerfile(SSH+iperf)
- android权重
- Caffe学习系列(3):视觉层(Vision Layers)及参数
- 不可忽略的知识点
- CSS3响应式设计
- win7下eclipse中maven的配置
- online_judge_1144
- 11G延迟密码验证的取消
- linux命令学习(5)