http://www.geeksforgeeks.org/construct-tree-from-given-inorder-and-preorder-traversal/

 #include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
#include <stack>
#include <string>
#include <fstream>
using namespace std; struct node {
char data;
struct node *left, *right;
node() : data(), left(NULL), right(NULL) { }
node(int d) : data(d), left(NULL), right(NULL) { }
}; void prints(node *root) {
if (!root) return;
prints(root->left);
cout << root->data << " ";
prints(root->right);
} node *buildtree(char in[], char pre[], int beg, int end) {
static int preindex = ;
if (beg > end) return NULL;
node *root = new node(pre[preindex++]);
int index = beg;
for (int i = beg; i <= end; i++) {
if (in[i] == root->data) {
index = i;
break;
}
}
root->left = buildtree(in, pre, beg, index-);
root->right = buildtree(in, pre, index+, end);
return root;
} int main() {
char in[] = {'D', 'B', 'E', 'A', 'F', 'C'};
char pre[] = {'A', 'B', 'D', 'E', 'C', 'F'};
int len = ;
node *root = buildtree(in, pre, , len-);
prints(root);
return ;
}

最新文章

  1. thinkphp5.0助手函数占用服务器资源
  2. Java:类与继承
  3. mongoDB数据库和Spring MVC的整合
  4. linux yum 命令
  5. Let&#39;s Encrypt 正式出發(免费HTTPS证书即将到来)
  6. windows phone SDK 8.0 模拟器异常 0x89721800解决办法
  7. WCF服务寄宿应用程序
  8. 在VMware Workstation上安装Kali Linux
  9. MVC简捷调用EasyUI的datagrid
  10. 关于HttpServlet和Servlet以及doPost和doGet关系
  11. 小学生之KTV项目文档(bdqn)
  12. 使用模板类导致error LNK2019: 无法解析的外部符号
  13. [leetcode]Plus One @ Python
  14. mouseleave,mouseout 和mouseover ,mouseenter区别
  15. 谈谈http与https
  16. SQLSERVER 的资源限制
  17. Visual Studio 2017 连接Oracle
  18. Nginx的各种报错总结
  19. DHT11温湿度传感器编程思路以及代码的实现(转载)
  20. jsp---tomcat===》》内置对象

热门文章

  1. 【原创】Loadrunner使用json格式请求数据并参数化
  2. Servlet的API(二)
  3. Docker Push 镜像到公共仓库
  4. Android下ListView的分页(9.6)
  5. SQLServer中存储过程StoredProcedure创建及C#调用(转)
  6. 什么是gcd
  7. Redis, Memcache, Mysql差别
  8. Flask--上下文源码流程
  9. NHibernate 延迟加载与立即加载 (第七篇)
  10. Java集合系列之TreeMap源代码分析