当前位置: 首页 > news >正文

先序+中序还原二叉树【数据结构】

先序+中序还原二叉树

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

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

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

输入样例1
9
ABDFGHIEC
FDHGIBEAC

输出样例1
5

#include<bits/stdc++.h>
using namespace std;
int high=0;
struct trees
{char value;trees* left=NULL;trees* right=NULL;
};
trees* setTree(int pl,int pr,int ml,int mr,map<char,int> &m,string prior,string middle,int height)
{//根节点char root=prior[pl];//根节点在中序遍历序列的位置int middleIndex=m[root];trees* tree = new trees;tree->value=root;if(middleIndex>ml) tree->left=setTree(pl+1,pl+middleIndex-ml,ml,middleIndex-1,m,prior,middle,height+1);if(middleIndex<mr) tree->right=setTree(pl+middleIndex-ml+1,pr,middleIndex+1,mr,m,prior,middle,height+1);high=max(high,height);return tree;
}
int main()
{int n;cin>>n;//记录字符在中序遍历序列位置map<char,int> m;string prior,middle;cin>>prior>>middle;for(int i=0;i<middle.size();i++) m[middle[i]]=i;trees* t=new trees;//建树t=setTree(0,n-1,0,n-1,m,prior,middle,1);cout<<high<<endl;return 0;
}

相关文章:

  • Prometheus通过consul实现自动服务发现
  • 搭建在线720虚拟VR展厅,不仅是展厅也是名片
  • 【SpringCloud】从实际业务问题出发去分析Eureka-Server端源码
  • 基于Freeswitch实现的Volte网视频通知应用
  • Git 使用规范:起名字、提交描述的最佳实践
  • Linux(ubuntu)下git / github/gitee使用
  • Java:表单生成excel文档 poi 通用
  • 001、安装 Rust
  • 【软件测试】为bug而生
  • HarmonyOS page生命周期函数讲解
  • 水准网、平面导线平差
  • 双击编辑el-table的单元格数据
  • 【ADB】电脑通过ADB向手机传输文件
  • Python 实现 PDF 到 Word 文档的高效转换(DOC、DOCX)
  • GET和POST请求
  • echarts花样作死的坑
  • leetcode98. Validate Binary Search Tree
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • mongodb--安装和初步使用教程
  • MQ框架的比较
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • PHP 的 SAPI 是个什么东西
  • Vue官网教程学习过程中值得记录的一些事情
  • 翻译:Hystrix - How To Use
  • 反思总结然后整装待发
  • 记一次和乔布斯合作最难忘的经历
  • 简单实现一个textarea自适应高度
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 模型微调
  • 写给高年级小学生看的《Bash 指南》
  • 移动端解决方案学习记录
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • nb
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • 数据可视化之下发图实践
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • #mysql 8.0 踩坑日记
  • (03)光刻——半导体电路的绘制
  • (done) 两个矩阵 “相似” 是什么意思?
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (三) diretfbrc详解
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (一)插入排序
  • (转)nsfocus-绿盟科技笔试题目
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET 回调、接口回调、 委托
  • .net操作Excel出错解决
  • .net项目IIS、VS 附加进程调试
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • @html.ActionLink的几种参数格式
  • @Service注解让spring找到你的Service bean