PAT L2-006【二叉树中序后序构造树】
2024-08-28 23:45:05
#include<bits/stdc++.h>
using namespace std;
typedef long long LL; struct BT{
int w;
BT *L;
BT *R;
}; BT* Creat(int *post,int *in,int n)
{
BT* p;
for(int i=0;i<n;i++)
{
if(post[n-1]==in[i])
{
p=(BT*)malloc(sizeof(BT));
p->w=in[i];
p->L=Creat(post,in,i);
p->R=Creat(post+i,in+i+1,n-(i+1));
return p;
}
}
return NULL;
} int main()
{
int post[35],in[35],n;
BT* root;
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d",&post[i]);
for(int i=0;i<n;i++)
scanf("%d",&in[i]); root=Creat(post,in,n); queue<BT*>q;
q.push(root);
bool flag=false;
while(!q.empty())
{
BT* now=q.front();q.pop();
if(flag) printf(" ");
printf("%d",now->w);
if(now->L) q.push(now->L);
if(now->R) q.push(now->R);
flag=true;
}
return 0;
}
最新文章
- Mongodb 3.2 Manual阅读笔记:CH9 存储
- 转载 NPOI Excel 单元格背景颜色对照表
- jQuery-1.9.1源码分析系列(十五) 动画处理
- vi 常用命令
- swift基础:第二部分:函数和闭包
- PRML读书会第十一章 Sampling Methods(MCMC, Markov Chain Monte Carlo,细致平稳条件,Metropolis-Hastings,Gibbs Sampling,Slice Sampling,Hamiltonian MCMC)
- iOS开发项目之四 [ 调整自定义tabbar的位置与加号按钮的位置]
- 【学习笔记】【C语言】指向函数的指针
- Android AIDL-跨进程
- 可视化PK纯代码
- 使用Yeoman搭建 AngularJS 应用 (4) —— 让我们搭建一个网页应用
- How to Validate XML using Java
- java集合之链式操作
- PHP 数组转JSON数据(convert array to JSON object);
- Python中的map()函数和reduce()函数的用法
- SDWebImage 图片缓存机制
- 深入探讨 ECMAScript 规范第五版
- 1,入门-Hello Soring Boot
- ●POJ 1741 Tree
- docker-compose的使用