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

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

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

题目思路:递归建树,计算高度

#include<iostream>
using namespace std;typedef struct tree {char data;tree* left;tree* right;
}*BinTree;BinTree BuildTree(char* pre , char* in , int n);
int GetHeight(BinTree T);
int main()
{int n;cin >> n;char preoreder[50], inorder[50];for (int i = 0; i < n; i++)cin >> preoreder[i];for (int i = 0; i < n; i++)cin >> inorder[i];BinTree T = BuildTree(preoreder, inorder, n);cout << GetHeight(T);return 0;
}BinTree BuildTree(char* pre, char* in, int n)
{if (n == 0)return NULL;int m;for (m = 0; in[m] != pre[0]; m++);      //找到头节点在inorder中的位置,把树分成左侧和右侧两部分BinTree T = new tree;T->data = pre[0];T->left = BuildTree(pre+1,in,m);T->right = BuildTree(pre + m + 1, in + m + 1, n - m - 1);return T;
}
int GetHeight(BinTree T)
{if (T == NULL)return 0;else{int m = GetHeight(T->left);int n = GetHeight(T->right);return m > n ? m + 1 : n + 1;}}

(1) 还原二叉树 (25 分)相关推荐

  1. 7-23 还原二叉树 (25 分)(分析加详解)

    一:题目: 给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度. 输入格式: 输入首先给出正整数N(≤50),为树中结点总数.下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重 ...

  2. 7-11 玩转二叉树 (25 分)

    7-11 玩转二叉树 (25 分) 给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列.所谓镜面反转,是指将所有非叶结点的左右孩子对换.这里假设键值都是互不相等的 ...

  3. 【CCCC】L2-011 玩转二叉树 (25分),二叉树建树与遍历(我讨厌树,@L2-006)

    problem L2-011 玩转二叉树 (25分) 给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列.所谓镜面反转,是指将所有非叶结点的左右孩子对换.这里假设 ...

  4. 玩转二叉树 (25 分) 知中序遍历和前序遍历,求做个镜面反转后的层序遍历

    题目: 给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列.所谓镜面反转,是指将所有非叶结点的左右孩子对换.这里假设键值都是互不相等的正整数. 输入格式: 输入第 ...

  5. 7-2 玩转二叉树 (25分)_2-1!72分钟绝杀!西乙黑马踢疯了,西班牙人+武磊却迎利好...

    西乙联赛第7轮,拉斯帕尔马斯又赢球了,这支球队2-1的比分取胜,拿到3分后,拉斯帕尔马斯已经保持了6轮不败,势头非常不俗,这支球队已经成为了西班牙人升级的主要对手之一,不过西班牙人也隔空收获一大利好, ...

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

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

  7. PTA:7-1 还原二叉树 (25 分)

    大一下半期数据结构 数据结构题目集 还原二叉树 给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度. 输入格式: 输入首先给出正整数N(≤50),为树中结点总数.下面两行先后给出先序和 ...

  8. 7-4 二叉树的遍历!(简单) (25 分)

    7-4 二叉树的遍历!(简单) (25 分) 二叉树作为FDS课程最核心的数据结构之一,要求每个人都掌握! 这是一道简单的二叉树问题! 我们将给出一颗二叉树,请你输出它的三种遍历,分别是先序遍历,中序 ...

  9. 【CCCC】L2-030 冰岛人 (25分) 模拟题,二叉树链式存储,从底部向上

    problem L2-030 冰岛人 (25分) 2018年世界杯,冰岛队因1:1平了强大的阿根廷队而一战成名.好事者发现冰岛人的名字后面似乎都有个"松"(son),于是有网友科普 ...

  10. 【CCCC】L2-012 关于堆的判断 (25分),,手写堆,二叉树编号,向上调整

    problem L2-012 关于堆的判断 (25分) 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: x is the root:x是根结点: ...

最新文章

  1. js实现随机选取[10,100)中的10个整数,存入一个数组,并排序。 另考虑(10,100]和[10,100]两种情况。...
  2. 腾讯最新开源项目登上GitHub热榜:QQ音乐等18项业务都在用,日均PV过亿
  3. MATLAB描绘极坐标图像——polar
  4. Codeforces Round #645 (Div. 2)(AB)
  5. beoplay耳机序列号查询_BOSE耳机序列号如何查询?
  6. android 对称加密和非对称加密,Android开发加密之对称与非对称加密算法使用案例.pdf...
  7. Win11系统无法安装GPT分区的解决方法
  8. python如何搭建环境_Python基础环境如何搭建
  9. Java中实现连接数据库并进行查询
  10. 前端笔记—第4篇CSS基础知识2
  11. 用文本文档编写c语言程序,c语言程序设计!怎样用程序修改文件(txt文档)里面的内容!?(需要代码,不仅仅是解说)...
  12. 如何强制卸载Google浏览器,不用担心Google打开为白板,亲测有效。
  13. 易语言 实现程序被关闭时隐藏窗口
  14. WIN10桌面图标消失,且右键失效
  15. 深入理解TTL 与 CMOS 电路
  16. vtuber面部捕捉工具_NOKOV(度量)动作捕捉携专业虚拟直播解决方案亮相世界VR产业大会...
  17. 吐槽最新的chrome浏览器.
  18. 4、Hangfire在AspNetCore中的使用(一)
  19. ACL访问控制列表(访问控制、抓取感兴趣流)详解及基本ACL和高级ACL的配置。
  20. BUUCTF_MISC-九连环

热门文章

  1. UItabelView头部视图;
  2. 查看linux中某个端口(port)是否被占用***
  3. struts使用拦截器注解
  4. 在图片上加入删除按钮
  5. Java ByteCode
  6. 关于 Backup Exec 中的介质
  7. 微软自带的FTP设置帐号
  8. 读取xml节点的数据总结(.net 2.0)
  9. [梦]2005年9月1日
  10. EntityFrameworkCore DBFirst