Description

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

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

Output

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

9

ABDFGHIEC

FDHGIBEAC

Output

5

#include<bits/stdc++.h>using namespace std;typedef struct node
{char data;struct node *l, *r;
} Tree;char pre[55], mid[55];Tree *creat(char *pre, char *mid, int len)
{Tree *root;if(len == 0)return NULL;root = new Tree;root->data = pre[0];int i;for(i = 0; i < len; i++){if(mid[i] == pre[0])break;}root->l = creat(pre + 1, mid, i);root->r = creat(pre + i + 1, mid + i + 1, len - i -1);return root;
}int depth_bintree(Tree *root)
{int de = 0;if(root){int left_depth = depth_bintree(root->l);int right_depth = depth_bintree(root->r);de = left_depth > right_depth ? left_depth + 1 : right_depth + 1;}return de;
}
int main()
{int n;while(~scanf("%d", &n)){scanf("%s", pre);scanf("%s", mid);Tree *root = creat(pre, mid, n);int depth= depth_bintree(root);printf("%d\n", depth);}return 0;
}

数据结构实验之二叉树四:(先序中序)还原二叉树相关推荐

  1. 数据结构与算法实验 实验6:二叉树ADT的二叉链式实现 (由完全前序序列创建二叉树 / 求二叉树的节点数/树高/叶子节点数 /先序中序后序层序遍历)

    假设二叉数的数据元素为字符,采用二叉链式存储结构.请编码实现二叉树ADT,其中包括创建二叉树.遍历二叉树(深度.广度).求二叉树的深度(高度).计算二叉树的元素个数.计算二叉树的叶子数.二叉树的格式输 ...

  2. 数据结构 - 树(二叉树的 前序、中序、后序 遍历)

    二叉树遍历(前序中序后序,主要是看父节点的输出顺序) package tree;public class BinaryTreeDemo {public static void main(String[ ...

  3. c++ 删除二叉树的子树_数据结构—树|二叉树|前序遍历、中序遍历、后序遍历【图解实现】...

    点击蓝字关注我们 AI研习图书馆,发现不一样的精彩世界 数据 结构 二叉树的遍历 一.树 在谈二叉树的知识点之前,我们首先来看一下树和图的基本概念.树:不包含回路的连通无向图,树是一种简单的非线性结构 ...

  4. 二十五、二叉树的前序、中序、后序遍历

    一.为何使用树这种数据结构 数组存储方式的分析 优点:通过下标方式访问元素,速度快.对于有序数组,还可使用二分查找提高检索速度. 缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较 ...

  5. 如何判断二叉树的前序,中序,后序遍历

    文章目录 前言 一.如何判断二叉树的前序,中序,后序遍历? 二.已知二叉树的前序遍历和中序遍历,如何得到它的后序遍历? 三.程序实现 总结 前言 最近复习题中看到二叉树,对于它的前序,中序,后序遍历的 ...

  6. 二叉树的前序、中序、后序遍历(递归、非递归写法)

    文章目录 一.什么是二叉树? 二.二叉树的基本概念 三.二叉树的三种遍历方式 1.前序遍历(preordertraversal) 1.中序遍历(inordertraversal) 1.后序遍历(pos ...

  7. 二叉树的前序、中序、后序遍历与创建

    #include <iostream> #include <string> #include <stack> using namespace std; struct ...

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

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

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

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

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

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

最新文章

  1. 超强的jquery极品插件--色彩选择器类/ 右键菜单类/ 图片新闻flash展示类
  2. Enda 的 2015 下半年读书计划
  3. java登录界面命令_Java命令行界面(第12部分):CLAJR
  4. Apollo进阶课程 ⑧ | 高精地图的格式规范
  5. AMD、CMD、CommonJs、ES6的对比
  6. [CF Skills]如何在预定的时间运行你的程序
  7. 荣耀Magic 3更多细节曝光:全系挖孔屏+最高100W快充
  8. InvalidClassException: org.antlr.v4.runtime.atn.ATN; Could not deserialize ATN with UUID
  9. isinstance 判断归属
  10. 使用php进行财务统计,基于php的基金财务数据接口调用代码实例
  11. 数仓知识05:事实表和维度表的概念
  12. C# 给Excel添加水印
  13. UrU4000B指纹仪驱动
  14. python 函数调用自身_Python-函数的递归调用
  15. AutoCAD快捷键大全
  16. 手游创业是新的风口吗
  17. matlab摩托车刹车问题,安全骑行篇,摩托车刹车的基本知识与技巧!
  18. 如何将国外的ftp气象大数据下载回来(by quqi99)
  19. 【笔记整理 - 操作系统】(时间较早)
  20. php fpm 命令行,php-fpm的命令使用

热门文章

  1. pandas去重函数
  2. ARCGIS10.1 插值分析结果按指定多边形输出
  3. JVM SandBox 的技术原理与应用分析
  4. 从平台到中台:Elaticsearch 在蚂蚁金服的实践经验
  5. zookeeper源码分析之六session机制
  6. Java命令行运行参数说明大全--转
  7. 【Python】透视表、统计表、汇总表、报表
  8. 特斯拉马斯克直聘AI人才:不看学历看能力
  9. 马克思关于劳动的八大金句
  10. 互联网技术架构的启示