题目描述

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

输入

输入数据有多组,每组数据第一行输入1个正整数N(1 <= N <= 50)为树中结点总数,随后2行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区分大小写)的字符串。

输出

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

示例输入

9
ABDFGHIEC
FDHGIBEAC

示例输出

5



#include <stdio.h>
#include<string.h>
#include<stdlib.h>
typedef char telement;
typedef struct BNote
{
char data;
struct BNote *lchild,*rchild;
}*BiTree;
telement pre[55],ino[55];
int i;
int Search(char str[51],char m)//查找字符在字符串中的位置;
{
for(i=0;str[i]!='\0';i++)
{
if(str[i]==m)
return i;
}
return -1;
}
void CrtBT(BiTree &T,char pre[],char ino[],int ps,int is,int n)//由先序序列中序序列建树;
{//ps前序序列的起始位置,is中序序列的起始位置;n为中序序列的长度;
if(n==0) T=NULL;
else
{
int k;
k=Search(ino,pre[ps]);
if(k==-1) T=NULL;
else
{
T=new BNote;
if(!T) exit(0);
T->data=pre[ps];
if(k==is) T->lchild=NULL;
else
CrtBT(T->lchild,pre,ino,ps+1,is,k-is);//注意前后序的初始位置的变化,中序序列的长度变化
if(k==is+n-1) T->rchild=NULL;
else
CrtBT(T->rchild,pre,ino,ps+1+(k-is),k+1,n-(k-is)-1);//注意前后序的初始位置的变化,中序序列的长度变化
}
}
}
int depth(BiTree T)//树的深度;
{
int lth,rth;
if(!T) return 0;
else
{
lth=depth(T->lchild);
rth=depth(T->rchild);
if(lth>rth)
return lth+1;
return rth+1;
}
}
int main()
{
int n;
BiTree T;
while(~scanf("%d",&n))
{
scanf("%s",pre);
scanf("%s",ino);
CrtBT(T,pre,ino,0,0,n);
printf("%d\n",depth(T));
}
return 0;
}

数据结构实验之二叉树四:还原二叉树相关推荐

  1. 数据结构---后序和中序遍历的二叉树序列还原二叉树

    数据结构-后序和中序遍历的二叉树序列还原二叉树 代码: #include<stdio.h> #include<stdlib.h> typedef struct bstTree ...

  2. 数据结构---前序和中序遍历的二叉树序列还原二叉树

    数据结构-前序和中序遍历的二叉树序列还原二叉树 代码: #include<stdio.h> #include<stdlib.h> typedef struct bstTree ...

  3. SDUT_2119 数据结构实验之链表四:有序链表的归并

    点击打开链接 数据结构实验之链表四:有序链表的归并 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem ...

  4. SDUT OJ 数据结构实验之链表四:有序链表的归并

    数据结构实验之链表四:有序链表的归并 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Desc ...

  5. 数据结构实验之栈四:括号匹配

     数据结构实验之栈四:括号匹配 Description 给你一串字符,不超过50个字符,可能包括括号.数字.字母.标点符号.空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配. Inp ...

  6. sdut 数据结构实验之栈四:括号匹配

    数据结构实验之栈四:括号匹配 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description ...

  7. 数据结构实验之排序四:寻找大富翁__咳咳咳,还魂篇!!

    数据结构实验之排序四:寻找大富翁 Time Limit: 200MS  Memory Limit: 512KB Submit  Statistic Problem Description 2015胡润 ...

  8. 数据结构实验之排序四:寻找大富翁 SDUT

    数据结构实验之排序四:寻找大富翁 SDUT Time Limit: 200 ms Memory Limit: 512 KiB Submit Statistic Problem Description ...

  9. 数据结构_C语言_实验二_树 ——还原二叉树

    文章目录 实验二 树 1. 实验目的 2. 实验内容 3. 实验要求 4. 实验过程 (1) 问题描述 (2) 数据结构与算法设计 (3) 程序实现 (4) 实验结果 (5) 实验总结 实验二 树 - ...

  10. 前序中序确认二叉树 7-23 还原二叉树(25 分)

    7-23 还原二叉树(25 分) 给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度. 输入格式: 输入首先给出正整数N(≤50),为树中结点总数.下面两行先后给出先序和中序遍历序列, ...

最新文章

  1. notepad++ 换行技巧 log换行
  2. pygame-KidsCanCode系列jumpy-part10-角色动画(上)
  3. 程序员如何更快的工作之 SQL Server
  4. 图解Redis之数据结构篇——压缩列表
  5. 51Nod --1133 不重叠的线段
  6. java 字符串模糊匹配_Java实现伪查询(全匹配+模糊匹配)
  7. Mac OS使用技巧之十二:解决APP Store更新、下载出错的问题
  8. linux支持arm架构么_全球首次!中国推出一款支持X86、ARM等各种芯片架构的操作系统...
  9. 2013应届毕业生“东方通”校招应聘总结
  10. 线性分类模型和向量矩阵求导_自然语言处理中向量空间模型的矩阵设计
  11. 微波遥感——微波与大气
  12. 计算机视觉:视频分解图片和图片合成视频
  13. linux串口 cat,Linux命令操作之cat与cut
  14. 帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
  15. c 语言运算符号大全,c语言关系运算符号有哪些?
  16. 计算机二级报名时间2020年12月江苏省,2020年12月计算机二级考试报名时间及考试安排...
  17. “国家中小学智慧教育平台”是什么
  18. 计算机影响交流,计算机真能明白人类在说啥?
  19. macOS藏文输入快捷键失效的问题
  20. 计算机编程语言用英语怎么说,计算机编程语言(国外英文资料).doc

热门文章

  1. lnmp php文件访问不了,记一次lnmp环境下无法执行php文件
  2. django orm mysql_Django之ORM操作Mysql
  3. pytorch模型加载测试_pytorch模型加载方法汇总
  4. windows7系统适合哪个python_Python3.6.4在Windows7系统下安装配置教程
  5. 东电计算机考研大概分数,2019年各学院硕士研究生拟录取名单公示
  6. 【LeetCode笔记】415. 字符串相加(Java、字符串)
  7. python代码导出_代码生成 – Python生成Python
  8. run till exit from #0_华为认证hcip H13821 v2.0云服务考试真题每日一练(一)
  9. 和vc的正确服用时间_最新研究:口服VC吸收远高于我们的意料
  10. python3解释器执行'abcdd'.endswith('cd')的结果是___python3解释器执行for x