[难度:容易] 先根和中根构建二叉树
来源:互联网 发布:淘宝宝贝图片怎么拍照 编辑:程序博客网 时间:2024/06/06 07:38
题目描述
具体代码
#include <iostream>#include <string>using namespace std;struct Node{ char data; Node* left,*right;};const int maxn=26+4;struct MemPool{ Node mem[maxn]; int cnt; void init() { cnt=0; } Node* newNode(int td,Node*l,Node* r) { Node* t=&mem[cnt++]; t->data=td; t->left=l; t->right=r; return t; }};MemPool nodePool;string preStr,inStr;Node* buildTree(int pre,int inI,int inJ){ if(inJ>inI) { int i; for(i=inI;i<inJ;++i) { if(inStr[i]==preStr[pre]) break; } Node* l=buildTree(pre+1,inI,i); Node* r=buildTree(pre+i-inI+1,i+1,inJ); Node* root=nodePool.newNode(preStr[pre],l,r); return root; } else return 0;}void postOrder(Node* root){ if(root==0) return; postOrder(root->left); postOrder(root->right); cout<<root->data;}int main(){ while(cin>>preStr>>inStr) { nodePool.init(); Node* root=buildTree(0,0,inStr.size()); postOrder(root); cout<<endl; } return 0;}
阅读全文
0 0
- [难度:容易] 先根和中根构建二叉树
- 中根遍历和先根遍历/后根遍历构建二叉树
- 中序遍历和先序遍历构建二叉树
- 先根+中根 创建二叉树
- 利用二叉树的先序和中序(中序和后序)排列构建二叉树
- 中序遍历和先序遍历/后序遍历构建二叉树
- 中序遍历和先序遍历/后序遍历构建二叉树
- 中序遍历和先序遍历/后序遍历构建二叉树
- 中序遍历和先序遍历/后序遍历构建二叉树
- 中序遍历和先序遍历/后序遍历构建二叉树
- 中序遍历和先序遍历/后序遍历构建二叉树
- 中序遍历和先序遍历/后序遍历构建二叉树
- 中序遍历和先序遍历/后序遍历构建二叉树
- 中序遍历和先序遍历/后序遍历构建二叉树
- 中序遍历和先序遍历/后序遍历构建二叉树
- 中序遍历和先序遍历/后序遍历构建二叉树
- 面试题3:根据先序和中序遍历的结果构建二叉树
- 二叉树的构建和先序,中序,后序遍历
- 疯狂java笔记之线性表
- 资深实践篇 |基于Kubernetes 1.61的Kubernetes Scheduler调度详解
- Optimal Division问题及解法
- 无线轮播+小圆点
- LinkedList源码详解
- [难度:容易] 先根和中根构建二叉树
- mybatis if字符串相等判断。。
- MongoDB学习笔记(索引)
- 无限轮播
- 9.4 边缘概率
- Parquet与ORC性能测试报告
- Day10-32.Common pitfalls when using operators
- Semaphore实现信号灯
- Android_Sqlbrite入门使用