• 还原二叉树(25 分)(已知前序和中序)


    还原二叉树(25 分)

    给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。

    输入格式:

    输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。

    输出格式:

    输出为一个整数,即该二叉树的高度。

    输入样例:

    9
    ABDFGHIEC
    FDHGIBEAC
    

    输出样例:

    5
    #include<iostream>
    #include<algorithm>
    using namespace std;
    struct Tree
    {  
        char data;  
        struct Tree *left,*right;  
    };
    char a[105];
    char b[105];
    struct Tree*creat(int q,int z, int n)
    {  
        struct Tree *T;  
        int i;  
        if(n<=0)
        {  
            T=NULL;  
        }
        else
        {  
            T=(struct Tree*)malloc(sizeof(struct Tree)); //首先要分配空间  才能在T中村播放数据   
            T->data=a[q];  
            for(i=0;a[q]!=b[z+i];i++);  
            T->left=creat(q+1,z,i);  
            T->right=creat(q+i+1,z+i+1,n-i-1);  
        }  
        return T;  
      
    }  
    
    int getHeight(Tree*T)
    {
        int hl,hr;
        if(T)
        {
            hl=getHeight(T->left);  
            hr=getHeight(T->right);
            return max(hl,hr)+1;
        }
        else return 0;
    }
    int main()
    {
        struct Tree *T;
        int n;
        cin>>n;
        for(int i=0;i<n;i++)
        {
            cin>>a[i];
        }
        for(int i=0;i<n;i++)
        {
            cin>>b[i];
        }
        T=creat(0,0,n);
        int p=getHeight(T);
        cout<<p<<endl;
        return 0;
    }
     
  • 相关阅读:
    【转载】make: Nothing to be done for `all'. 解决方法
    P4行为模型BMV2安装
    P4行为模型BMV2依赖关系安装:thrift nanomsg nnpy安装
    P4factory ReadMe 剩余部分
    P4factory ReadMe Quickstart 安装p4factory
    Git 使用ssh密钥
    c++ 有swap函数
    c++ 引用
    topk两种解法
    xgboost和gbdt区别
  • 原文地址:https://www.cnblogs.com/caiyishuai/p/9149942.html
Copyright © 2020-2023  润新知