[patl2-011]玩转二叉树
2024-09-02 04:57:42
解题关键:数据结构课本上的裸题。
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
struct mm{int l,r;}tr[];
int arr[];
int brr[];
queue<int>que;
int build(int la,int ra,int lb,int rb){
if(la>ra) return ;
int root=brr[lb];
int p=la;
while(arr[p]!=root) p++;
int cnt=p-la;
tr[root].l=build(la,p-,lb+,lb+cnt);
tr[root].r=build(p+,ra,lb+cnt+,rb);
return root;
}
void revers(int root){
if(root){
swap(tr[root].l,tr[root].r);
revers(tr[root].l);
revers(tr[root].r);
}
}
int flag;
void bfs(){
int root=brr[];
que.push(root);
while(!que.empty()){
int t=que.front();
que.pop();
if(flag==){
printf(" %d",t);}
else{
printf("%d",t);flag=;
}
if(tr[t].l) que.push(tr[t].l);
if(tr[t].r) que.push(tr[t].r);
}
}
int main(){
int n;
scanf("%d",&n);
for(int i=;i<n;i++){
scanf("%d",arr+i);
}
for(int i=;i<n;i++){
scanf("%d",brr+i);
}
build(,n-,,n-);
revers(brr[]);
bfs();
}
最新文章
- Node+fs+定时器(node-schedule)+MySql
- aps.net cored 新概念
- Mifare系列7-安全性(转)
- android 混淆导致友盟反馈出错
- 使用WP8最新的AudioVideoCaptureDevice类制作录像应用
- August 9th 2016, Week 33rd Tuesday
- hdu 1754:I Hate It(线段树,入门题,RMQ问题)
- python coroutine测试
- 【测试】模拟一个全表扫描的sql,对其进行优化走索引,并且将执行计划稳定到baseLine。
- jira插件带ui界面和几种方式
- 51单片机C语言学习笔记3: 存储器结构
- android高仿微信UI点击头像显示大图片效果
- poj 3321
- 使用Cmder的几个问题
- linux下查看账号密码的过期时间和设置时间
- CSS3学习笔记-1:CSS样式继承
- selenium 断言与验证
- from提交表单后 数据提交到后台 但不跳转页面 可用iframe
- poj-1218 THE DRUNK JAILER 喝醉的狱卒
- [PHP] 工厂模式的日常使用