中序先序到后序 洛谷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);
}

浙公网安备 33010602011771号