zoukankan      html  css  js  c++  java
  • 二叉树遍历 A1086.Tree Traversals Again(25) (转化为给定前序和中序列,求后序)

    #include <bits/stdc++.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <queue>
    using namespace std;
    const int maxn = 50;
    struct node{
        int data;
        node* lchild;
        node* rchild;
    };
    int pre[maxn],in[maxn],post[maxn];
    int n;
    node* create(int preL,int preR,int inL,int inR){
        if(preL > preR){
            return NULL;
        }
        node* root = new node;
        int temp = pre[preL];
        root->data = temp;
        int k;
        for(int i = inL;i<=inR;++i){
            if(in[i] == temp){
                k = i;
            }
        }
        int numLeft = k - inL;
        root->lchild = create(preL+1,preL + numLeft,inL,k - 1);
        root->rchild = create(preL + numLeft + 1,preR,k+1,inR);
        return root;
    }
    int num = 0;
    void postOrder(node *root){
        if(root == NULL){
            return;
        }
        postOrder(root->lchild);
        postOrder(root->rchild);
        printf("%d",root->data);
        num++;
        if(num < n){
            printf(" ");
        }
    }
    
    int main(){
        scanf("%d",&n);
        char str[5];
        stack<int> st;
        int x,preList,inList;
        preList = 0;
        inList = 0;
        for(int i=0;i< 2*n;++i){
            scanf("%s",str);
            if(strcmp(str,"Push")==0){
                scanf("%d",&x);
                st.push(x);
                pre[preList] = x;
                preList++;
            }else{
                x = st.top();
                st.pop();
                in[inList] = x;
                inList++;
            }
        }
        node* root = create(0,n-1,0,n-1);
        postOrder(root);
        system("pause");
        return 0;
    }

     

  • 相关阅读:
    Java 8新特性探究(九)跟OOM:Permgen说再见吧
    Java 堆内存(Heap)[转]
    hashmap源码
    Java8学习笔记----Lambda表达式 (转)
    双重检查锁定与延迟初始化(转自infoq)
    kvm的live-snapshot
    8.25考试总结
    CF1151FSonya and Informatics
    CF1151div2(Round 553)
    BZOJ3728 PA2014Final Zarowki
  • 原文地址:https://www.cnblogs.com/JasonPeng1/p/12231656.html
Copyright © 2011-2022 走看看