6-3 二叉树的重建 uva536
已知先序和中序 求后序
可以有两种方式输出
一种是建好树按照树输出
一种是不建树 在遍历的过程中存入vector 再倒叙输出
#include<bits/stdc++.h> using namespace std;int ri[1000];int le[1000]; char xian[30],zhong[30];vector<char>ans;int built(int x1,int y1,int x2,int y2) {if(x2>y2||x1>y1)return 0;char root=xian[x1];ans.push_back(root);int p=x2;while(zhong[p]!=root)p++;int cnt=p-x2;ri[root]=built(x1+cnt+1,y1,x2+cnt+1,y2);le[root]=built(x1+1,x1+cnt,x2,x2+cnt-1);return root;}void dfs(int root) {if(le[root]){dfs(le[root]);}if(ri[root]){dfs(ri[root]);}printf("%c",root);return; }int main() {while(scanf("%s %s",xian+1,zhong+1)==2){ ans.clear();int n=strlen(xian+1);int root=built(1,n,1,n);//for(int i=ans.size()-1;i>=0;i--)// cout<<ans[i]; dfs(root);cout<<endl;}return 0; }
View Code
转载于:https://www.cnblogs.com/bxd123/p/10317679.html
6-3 二叉树的重建 uva536相关推荐
- python实现二叉树的重建2 之由中序遍历和后序遍历重建
前言 通过上一节对python实现二叉树的重建1 之由前序遍历和中序遍历重建,我相信我们再来做这个问题就不难了,完全可以照猫画虎的来实现,具体的原理几乎是一样的,直接上代码了 code # 通用解法d ...
- 二叉树的建立与遍历_51、二叉树遍历-重建二叉树JZ4
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...
- 9 二叉树的重建--来源于沈钰S同学(舒姐)
来源于沈钰S同学(舒姐) 来源于沈钰S同学(舒姐) abyssfall的博客_CSDN博客-计科学子的头发账本,代码存档领域博主 问题描述 : 目的:现有两个结点序列,分别是对同一个二叉树进行前序遍历 ...
- 二叉树(二):判断是不是二叉搜索树、判断是不是完全二叉树、判断是不是平衡二叉树、二叉搜索树的最近公共祖先、在二叉搜索树中找到两个节点的最近公共祖先、序列化二叉树、重建二叉树、输出二叉树的右视图
目录 一.判断是不是二叉搜索树 1.1 题目 1.2 题解 二.判断是不是完全二叉树 2.1 题目 2.2 题解 三.判断是不是平衡二叉树 3.1 题目 3.2 题解 四.二叉搜索树的最近公共祖先 4 ...
- 【二叉树】重建二叉树
0x00 题目 输入某二叉树的前序遍历和中序遍历的结果 请构建该二叉树并返回其根节点 假设输入的前序遍历和中序遍历的 结果中都不含重复的数字 0x01 思路 前序遍历的路径是:中,左,右 中序遍历的路 ...
- python实现二叉树的重建1 之由前序遍历和中序遍历重建
前言 此题是关于树的面试题目的常见题型,题目的含义很清晰,这个就不用多说了 解法 关于这道题的解法有很多不同的样式,通用的解法是这样的: 假如现在我们有如下两个遍历的情况 preorder: [1, ...
- html 二叉树模式,重建二叉树.html
Document function TreeNode(x) { this.val = x; this.left = null; this.right = null; } var pre = [1,2, ...
- 数据结构:关于重建二叉树的三种思路
前言: 前几天在温习<编程之美>这本书的时候,看到了二叉树的重建.正好,也想复习一下数据结构的知识,就来写了一个小Demo.居然有新发现(本文中的第三种方式). 我们在学习数据结构的时候, ...
- 通过层序和中序遍历序列重建二叉树
在学二叉树的重建时,在<算法笔记>上学到了如何通过先序(或后序)遍历序列和中序遍历序列重建二叉树,它也提出了一个问题:如何通过层序和中序遍历序列重建二叉树?我一开始按照先序和中序重建的思路 ...
最新文章
- vue开发使用vue-particles如何兼容IE11?
- 网络设备Web登录检测工具device-phamer
- cookie 的使用
- 数据库中id类型和varchar类型的区别
- 迭代器和生成器的区别
- 【干货】H3C如何配置VLAN-trunk 二层隔离技术?
- Taran 缩点【bzoj1529】[POI2005]ska Piggy banks
- PHP考试插件,php秒杀插件?
- static函数与普通函数区别
- 【转】vue项目重构技术要点和总结
- 51单片机数码管闪烁c语言,AT89C51单片机数码管闪烁问题怎么解决
- 软件体系结构风格复习总结
- crc8校验c语言程序,单片机CRC8检验C语言实现
- VS2013安装SVN插件
- 罗技无法使用计算机上的配置文件,罗技无线鼠标接收器无法配对的详细解决办法...
- Pytorch iter问题
- 国外服务器https协议,AriaNg使用Https/WebSocket(安全)协议连接Aria2的方法
- 【微信开放平台】微信第三方扫码登录(亲测可用)
- H3C-S5560交换机设置
- CSS3过渡:在2个不同的渐变色之间进行动画处理
热门文章
- Sqlserver2008相关配置问题
- Activiti工作流(三)——流程变量
- codeforces#320(div2) D Or Game 贪心
- Sql Server之数据类型详解
- VS搭建lua开发环境和LuaBridge注册c++类(cocos2dx项目)(一)
- 目标检测无痛涨点:大白话 Generalized Focal Loss
- 移动端70+fps!谷歌新出高效实时视频目标检测
- 行业大牛都是同时掌握游戏建模和游戏原画的吗?
- 收藏 | 一文看懂注意力机制
- 《Python编程从入门到实践》记录之第2章 变量和简单数据类型总结(思维导图)