#include <cstdio>
#include <vector>
#include <stack>
#include <cstring>
using namespace std;
vector<int> pre, in, post;
void postorder(int root, int start, int end) {
if(start > end) return ;
int i = start;
while(i < end && in[i] != pre[root]) i++;
postorder(root + 1, start, i - 1);
postorder(root + 1 + i - start, i + 1, end);
post.push_back(pre[root]);
}
int main() {
int n;
scanf("%d", &n);
char str[5];
stack<int> s;
while(~scanf("%s", str)) {
if(strlen(str) == 4) {
int num;
scanf("%d", &num);
pre.push_back(num);
s.push(num);
} else {
in.push_back(s.top());
s.pop();
}
}
postorder(0, 0, n - 1);
printf("%d", post[0]);
for(int i = 1; i < n; i++)
printf(" %d", post[i]);
return 0;
}
菜鸡只了解c的语法 这个程序是用来解决已知树的前序中序遍历来得出后序遍历,采取的是递归的方法 使用在线编译器能完美运行 但 使用dev c++编译可以输入 但不会输出任何数据 请问是什么问题。