PTA 7-1 还原二叉树 (25分)
PTA 7-1 还原二叉树 (25分)
给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。
输入格式:
输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。
输出格式:
输出为一个整数,即该二叉树的高度。
输入样例:
9
ABDFGHIEC
FDHGIBEAC
输出样例:
5
【程序思路】
树的建立参考 根据后序和中序遍历输出先序遍历
【程序实现】
#include <bits/stdc++.h>
using namespace std;
struct Tree{
	char data;
	struct Tree *left;
	struct Tree *right;
};
char p1[55],p2[55];
struct Tree *creat(int front1, int rear1, int front2, int rear2) {
	struct Tree *root = new struct Tree;
	root->data = p1[front1];
	root->left = root->right = NULL;
	int p = front2;
	while(p2[p] != p1[front1])
		p++;
	int c = p - front2;//左子树节点的个数
	if (p != front2) //创建左子树
		root->left = creat(front1 + 1 , front1 + c , front2 , p - 1);
	if (p != rear2)//创建右子树
		root->right = creat(front1 + c + 1 , rear1 , p + 1 , rear2);
	return root;
}
int GetHeight( struct Tree *BT ){
	int hl,hr;
	if(BT) {
		hl = GetHeight(BT->left);
		hr = GetHeight(BT->right);
		return hl > hr ? hl + 1 : hr + 1;
	}
	return 0;
}
int main()
{
	int n;
	cin>>n;
	getchar();//最后过滤一个回车
	scanf("%s",p1);
	scanf("%s",p2);
	struct Tree *root = creat(0, n - 1, 0, n - 1);
	cout<<GetHeight(root)<<endl;
	return 0;
}
PTA 7-1 还原二叉树 (25分)的更多相关文章
- PTA 7-3 树的遍历 (25分)
		PTA 7-3 树的遍历 (25分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点 ... 
- PTA 是否二叉搜索树 (25分)
		PTA 是否二叉搜索树 (25分) 本题要求实现函数,判断给定二叉树是否二叉搜索树. 函数接口定义: bool IsBST ( BinTree T ); 其中BinTree结构定义如下: typede ... 
- PTA 7-3 Windows消息队列 (25分)
		PTA 7-3 Windows消息队列 (25分) 消息队列是Windows系统的基础.对于每个进程,系统维护一个消息队列.如果在进程中有特定事件发生,如点击鼠标.文字改变等,系统将把这个消息加到队列 ... 
- PTA 哈利·波特的考试 (25分)
		PTA 哈利·波特的考试 (25分) 哈利·波特要考试了,他需要你的帮助.这门课学的是用魔咒将一种动物变成另一种动物的本事.例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等.反方向变 ... 
- PTA 03-树1 树的同构   (25分)
		题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/711 5-3 树的同构 (25分) 给定两棵树T1和T2.如果T1可以通过若干次左右 ... 
- PTA 11-散列2 Hashing   (25分)
		题目地址 https://pta.patest.cn/pta/test/16/exam/4/question/679 5-17 Hashing (25分) The task of this pro ... 
- PTA 09-排序1 排序   (25分)
		题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/720 5-12 排序 (25分) 给定NN个(长整型范围内的)整数,要求输出从小到大 ... 
- PTA 03-树3 Tree Traversals Again   (25分)
		题目地址 https://pta.patest.cn/pta/test/16/exam/4/question/667 5-5 Tree Traversals Again (25分) An inor ... 
- PTA 7-2 列车调度(25 分)
		7-2 列车调度(25 分) 火车站的列车调度铁轨的结构如下图所示. 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条轨道 ... 
随机推荐
- python序列类型及一些操作
			序列分类 1.按存放的数据类型分类: 容器类型(能存放不同类型的数据):list.tuple.coolections.deque 扁平序列(只能存放一种类型的数据):str.bytes.bytearr ... 
- xadmin使用富文本
			环境:pycharm django1.11.20 python2.7 后台xadmin(根据网络各种资料实现) 本教程接上篇如何安装 xadmin,如何不清楚,请看上一篇(django安装xadmin ... 
- 获取classpath(src/main/resources)的绝对路径
			先贴上代码 private static String basePath = Thread.currentThread().getContextClassLoader().getResource(&q ... 
- Spring源码之创建AOP代理之增强器的获取
			前言 在上一篇博文中我们说到了通过自定义配置完成了对AnnotationAwareAspectJAutoProxyCreator类型的自动注册,那么这个类究竟做了什么工作从而完成AOP的操作呢?首先我 ... 
- 使用vxe table组件时,edit-render配置$select',选中option后关闭cell的激活状态,显示选中option的value问题
			在我的项目中使用vxe table组件时,edit-render配置{name: '$select', options: [{label:"脉搏",value:"maib ... 
- 使用CEF(三)— 从CEF官方Demo源码入手解析CEF架构与CefApp、CefClient对象
			在上文<使用CEF(2)- 基于VS2019编写一个简单CEF样例>中,我们介绍了如何编写一个CEF的样例,在文章中提供了一些代码清单,在这些代码清单中提到了一些CEF的定义的类,例如Ce ... 
- ECMA 2022 (es13) 新特性
			本文主要整理了截至到 2021年10月12日 为止的且处于 Stage 3->Stage 4 阶段的ECMA提案. 主要包括: Class Fields RegExp Match Indices ... 
- Ubuntu20.04安装 maven并配置阿里源
			Ubuntu20.04安装 maven并配置阿里源 sudo apt update sudo apt install maven #安装maven,默认安装路径为/usr/share/maven 添加 ... 
- vue3 专用 indexedDB 封装库,基于Promise告别回调地狱
			IndexedDB 的官网 https://developer.mozilla.org/zh-CN/docs/Web/API/IndexedDB_API 这个大概是官网吧,原始是英文的,现在陆续是出中 ... 
- SpringBoot入门05-全局配置文件
			springboot全局配置文件作用是设置或修改默认设置 springboot全局配置文件有下面两种方式 application.xml配置文件 示例 server.port=8088 server. ... 
