zoukankan      html  css  js  c++  java
  • 还原二叉树

    7-1 还原二叉树 (25 分)
    给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。

    输入格式:

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

    输出格式:

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

    输入样例:

    9
    ABDFGHIEC
    FDHGIBEAC
    输出样例:

    5

    include<stdio.h>

    include<stdlib.h>

    define MAX 50

    typedef char ElemType;
    typedef struct node *Bintree;
    struct node
    {
    ElemType data;
    Bintree Left;
    Bintree Right;
    };
    Bintree Recover(ElemType Pre[],ElemType In[],int len)
    {
    Bintree T;
    int i;
    if(!len)
    return NULL;
    else
    {
    T=malloc(sizeof(struct node));
    T->data=Pre[0];
    for(i=0;i<len;i++) {
    if(Pre[0]==In[i])
    break;
    }
    T->Left=Recover(Pre+1,In,i);
    T->Right=Recover(Pre+1+i,In+i+1,len-i-1);
    }
    return T;
    }
    int GetHigh(Bintree T)
    {
    int HL,HR,MaxH=0;
    if(T){
    HL=GetHigh(T->Left);
    HR=GetHigh(T->Right);
    MaxH=HL>HR?HL:HR;
    return (MaxH+1);
    }
    else
    return 0;
    }
    int main()
    {
    Bintree Tree;
    ElemType Preorder[MAX+1],Inorder[MAX+1];
    int N,H;
    scanf("%d",&N);
    scanf("%s",Preorder);
    scanf("%s",Inorder);
    Tree=Recover(Preorder,Inorder,N);
    H=GetHigh(Tree);
    printf("%d ",H);
    return 0;
    }

  • 相关阅读:
    OC中的block
    tips: NSCopying和NSMutableCopying
    tips: @property 、@synthesize和@dynamic
    静态库SDK引发的符号冲突
    复杂业务app中跨业务页面调用方案
    AOP
    【HTML 初学】3、HTML标题
    【HTML 初学】2、HTML属性
    【HTML 初学】1、HTML元素
    【Java编程思想】二、一切都是对象
  • 原文地址:https://www.cnblogs.com/1112zx/p/10834628.html
Copyright © 2011-2022 走看看