中序+后序转层序
void levelorder(int post_root,int inL,int inR,int idx){
if(inL > inR) return ;
level.push_back({post[post_root],idx});
int k;
for(k = inL; k <= inR; k ++ ){
if(in[k] == post[post_root]) break;
}
levelorder(post_root - 1 - (inR - k),inL,k - 1,2 * idx);
levelorder(post_root - 1,k + 1,inR,2 * idx + 1);
}
bool cmp(Node a,Node b){
return a.idx < b.idx;
}
levelorder(n - 1,0,n - 1,1);
sort(level.begin(),level.end(),cmp);
中序+后序转先序
void preorder(int post_root,int inL,int inR){
if(inL > inR) return ;
pre.push_back({post[post_root],idx});
int k;
for(k = inL; k <= inR; k ++ ){
if(in[k] == post[post_root]) break;
}
levelorder(post_root - 1 - (inR - k),inL,k - 1);
levelorder(post_root - 1,k + 1,inR);
}
preorder(n - 1,0,n - 1);
sort(level.begin(),level.end(),cmp);
#include<bits/stdc++.h>
using namespace std;
#define mm(a,x) memset(a,x,sizeof a)
#define mk make_pair
#define ll long long
#define pii pair<int,int>
#define inf 0x3f3f3f3f
#define lowbit(x) (x) & (-x)
#define endl "\n"
const int N = 40;
struct Node{
int data,idx;
};
int n;
int in[N],post[N];
vector<Node > level;
void levelorder(int post_root,int inL,int inR,int idx){
if(inL > inR) return ;
level.push_back({post[post_root],idx});
int k;
for(k = inL; k <= inR; k ++ ){
if(in[k] == post[post_root]) break;
}
levelorder(post_root - 1 - (inR - k),inL,k - 1,2 * idx);
levelorder(post_root - 1,k + 1,inR,2 * idx + 1);
}
bool cmp(Node a,Node b){
return a.idx < b.idx;
}
int main() {
cin >> n;
for(int i = 0; i < n; i ++ ) cin >> post[i];
for(int i = 0; i < n; i ++ ) cin >> in[i];
levelorder(n - 1,0,n - 1,1);
sort(level.begin(),level.end(),cmp);
for(int i = 0; i < n; i ++ ){
if(i) cout<<" ";
cout<<level[i].data;
}
return 0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· 《HelloGitHub》第 106 期
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用