zoukankan      html  css  js  c++  java
  • 树的重建

    题目描述

            给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度≤8)。

    输入

    第一行为二叉树的中序序列 第二行为二叉树的后序序列

    输出

    一行,为二叉树的先序序列

    样例输入
    BADC
    BDCA
    
    样例输出
    ABCD
    

    #include <iostream>
    #include <algorithm>
    #include <string.h>
    #include <stdlib.h>
    
    using namespace std;
    
    char en[10],in[10];
    void TREE(int en_sta,int en_end,int in_sta,int in_end)
    {
        int k,range;
        char root;
        if(en_sta>en_end||in_sta>in_end)
            return ;
        if(en_sta==en_end)
        {
            cout<<en[en_sta];
            return ;
        }
        root=en[en_end];
        for(k=in_sta; k<=in_end; k++)
        {
            if(root==in[k])
                break;
        }
        range=k-in_sta;
        cout<<root;
        TREE(en_sta,en_sta+range-1,in_sta,k-1);
        TREE(en_sta+range,en_end-1,k+1,in_end);
    }
    
    int main()
    {
        int len;
        cin>>in>>en;
           len=strlen(en);
        TREE(0,len-1,0,len-1);
        cout<<endl;
        return 0;
    }
    
    低调做人,高调做事。
  • 相关阅读:
    宿主机无法访问CentOS7上Jenkins服务的解决办法
    415. Add Strings
    367. Valid Perfect Square
    326. Power of Three
    258. Add Digits
    231. Power of Two
    204. Count Primes
    202. Happy Number
    172. Factorial Trailing Zeroes
    171. Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/Asimple/p/5512113.html
Copyright © 2011-2022 走看看