中序先序到后序 洛谷P1827
洛谷P1827
输入中序先序序列,输出后序
l1-l2为当前中序遍历序列
l3-l4为当前先序遍历序列
#include<bits/stdc++.h>
using namespace std;
string a, b;
void build(int l1, int l2, int l3, int l4) {
if (l1 > l2 || l3 > l4) return;
for (int i = l1; i <= l2; i++) {
if (a[i] == b[l3]) {//分为两部分
build(l1, i-1, l3+1, l3+i-l1);//输出左子树
build(i+1, l2, l3+i-l1+1, l4);//输出右子树
cout << a[i];
}
}
}
int main() {
cin >> a >> b;
int l = a.size();
build(0, l-1, 0, l-1);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步