zoukankan      html  css  js  c++  java
  • 7-23 还原二叉树(25 分)

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

    输入格式:

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

    输出格式:

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

    输入样例:

    9
    ABDFGHIEC
    FDHGIBEAC
    

    输出样例:

    5
    解题思路:先序中第一个字母A为根节点,因而中序的第一个字母到A为A的左子树,A以后的字母为A的右子树,递归可建二叉树
     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<string.h>
     4 
     5 typedef struct TNode
     6 {
     7     char data;
     8     struct TNode *lchild,*rchild;
     9 } TNode,*Tree;
    10 
    11 Tree CreatTree( char xian[],char zhong[],int n);
    12 int High( Tree t);
    13 
    14 char xian[55];   //先序序列
    15 char zhong[55];  //中序序列
    16 int n;
    17 
    18 int main()
    19 {
    20     scanf("%d",&n);
    21     scanf("%s",xian);
    22     scanf("%s",zhong);
    23     Tree tree = CreatTree( xian,zhong,n);
    24     printf("%d",High(tree));
    25     return 0;
    26 }
    27 
    28 Tree CreatTree( char xian[],char zhong[],int n)
    29 {
    30     if( n==0 ) return NULL;
    31     int index = 0;
    32     Tree temp = (Tree) malloc(sizeof(struct TNode));
    33 
    34     while( index < n)
    35     {
    36         if( zhong[index]==xian[0]) break;
    37         index ++;
    38     }
    39     temp->data = xian[0];
    40     temp->lchild = CreatTree(xian+1,zhong,index);
    41     temp->rchild = CreatTree(xian+1+index,zhong+index+1,n-index-1);
    42     return temp;
    43 }
    44 
    45 int High( Tree t)
    46 {
    47     if( !t ) return 0;
    48     int lh = High(t->lchild);
    49     int rh = High(t->rchild);
    50     if( lh>rh ) return ++lh;
    51     else return ++rh;
    52 }





    在这个国度中,必须不停地奔跑,才能使你保持在原地。如果想要寻求突破,就要以两倍现在速度奔跑!
  • 相关阅读:
    MVC系列14-后台我的文章页
    MVC系列-13.前台文章显示页
    MVC系列-12.项目的重新规划
    MVC系列-11.两表联合-发表文章
    MVC系列-10.用户验证-导航条改造
    百思不得姐第4天:文本框占位文字颜色
    swift学习:自定义Log
    swift学习第十六天:懒加载和tableView
    swift学习第十五天:闭包
    swift学习第十四天:属性监听器
  • 原文地址:https://www.cnblogs.com/yuxiaoba/p/8406899.html
Copyright © 2011-2022 走看看