• uva 536


    点击打开链接uva 536

    思路: 数据结构
    分析:
    1 题目给定前序序列和中序序列,要求二叉树的后序序列
    2 建好二叉树之和直接遍历输出即可,裸题

    代码:

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    
    const int MAXN = 30;
    
    char preOrder[MAXN];
    char midOrder[MAXN];
    
    struct Node{
        char c;
        Node *left;
        Node *right;
        Node(char c){
            this->c = c;
            this->left = left;
            this->right = right;
        }
    };
    Node *root;
    
    Node* createTree(char *pre , char *mid , int len){
         if(len == 0) 
             return NULL;
         int k = 0;
         while(mid[k] != pre[0])
             k++;
         Node *root = new Node(pre[0]);
         root->left = createTree(pre+1 , mid , k);
         root->right = createTree(pre+k+1 , mid+k+1 , len-k-1);
         return root;
    }
    
    void output(Node *u){
        if(u != NULL){
            output(u->left); 
            output(u->right); 
            printf("%c" , u->c);
        }
    }
    
    void solve(){
        int len = strlen(preOrder); 
        root = createTree(preOrder , midOrder , len);
        output(root);
        puts("");
    }
    
    int main(){
       while(scanf("%s" , preOrder) != EOF){
            scanf("%s" , midOrder);   
            solve();
       }
       return 0;
    }
    



  • 相关阅读:
    每日总结
    每日总结
    每周总结
    全球覆盖(哈希+思维)
    DP搬运工2
    DP搬运工1 [来自yyy--mengbier的预设型dp]
    团队开发day06
    团队开发day05
    团队开发day04
    团队开发day03
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3223773.html
Copyright © 2020-2023  润新知