使用dev c++ 编译这个程序的时候为什么没有输出

#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++编译可以输入 但不会输出任何数据 请问是什么问题。

阅读 4.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题