板题求助
  • 板块题目总版
  • 楼主tder
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/12/15 20:25
  • 上次更新2023/12/15 20:26:42
查看原帖
板题求助
714254
tder楼主2023/12/15 20:25

给定二叉树的前序中序遍历,求其后续遍历。

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e5 + 5;
string a, b;
struct node {
	char c;
	int l, r;
} t[N]; 
int cnt;
int work(int l, int r) {
	int i = l;
	for(; i < r; i++) if(a[i] == b[i]) break;
	if(l >= r || i == r) return 0;
	t[++cnt].c = a[l];
	t[cnt].l = work(l + 1, i - 1);
	t[cnt].r = work(i + 1, r);
	return i;
}
void dfs(int x) {
	if(t[x].l) dfs(t[x].l);
	if(t[x].r) dfs(t[x].r);
	cout<<t[x].c;
}
signed main() {
	cin>>a>>b;
	work(0, a.length() - 1);
	dfs(1);
	return 0;
}
2023/12/15 20:25
加载中...