已知先序和中序  求后序

可以有两种方式输出

一种是建好树按照树输出

一种是不建树  在遍历的过程中存入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相关推荐

  1. python实现二叉树的重建2 之由中序遍历和后序遍历重建

    前言 通过上一节对python实现二叉树的重建1 之由前序遍历和中序遍历重建,我相信我们再来做这个问题就不难了,完全可以照猫画虎的来实现,具体的原理几乎是一样的,直接上代码了 code # 通用解法d ...

  2. 二叉树的建立与遍历_51、二叉树遍历-重建二叉树JZ4

    题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...

  3. 9 二叉树的重建--来源于沈钰S同学(舒姐)

    来源于沈钰S同学(舒姐) 来源于沈钰S同学(舒姐) abyssfall的博客_CSDN博客-计科学子的头发账本,代码存档领域博主 问题描述 : 目的:现有两个结点序列,分别是对同一个二叉树进行前序遍历 ...

  4. 二叉树(二):判断是不是二叉搜索树、判断是不是完全二叉树、判断是不是平衡二叉树、二叉搜索树的最近公共祖先、在二叉搜索树中找到两个节点的最近公共祖先、序列化二叉树、重建二叉树、输出二叉树的右视图

    目录 一.判断是不是二叉搜索树 1.1 题目 1.2 题解 二.判断是不是完全二叉树 2.1 题目 2.2 题解 三.判断是不是平衡二叉树 3.1 题目 3.2 题解 四.二叉搜索树的最近公共祖先 4 ...

  5. 【二叉树】重建二叉树

    0x00 题目 输入某二叉树的前序遍历和中序遍历的结果 请构建该二叉树并返回其根节点 假设输入的前序遍历和中序遍历的 结果中都不含重复的数字 0x01 思路 前序遍历的路径是:中,左,右 中序遍历的路 ...

  6. python实现二叉树的重建1 之由前序遍历和中序遍历重建

    前言 此题是关于树的面试题目的常见题型,题目的含义很清晰,这个就不用多说了 解法 关于这道题的解法有很多不同的样式,通用的解法是这样的: 假如现在我们有如下两个遍历的情况 preorder: [1, ...

  7. html 二叉树模式,重建二叉树.html

    Document function TreeNode(x) { this.val = x; this.left = null; this.right = null; } var pre = [1,2, ...

  8. 数据结构:关于重建二叉树的三种思路

    前言: 前几天在温习<编程之美>这本书的时候,看到了二叉树的重建.正好,也想复习一下数据结构的知识,就来写了一个小Demo.居然有新发现(本文中的第三种方式). 我们在学习数据结构的时候, ...

  9. 通过层序和中序遍历序列重建二叉树

    在学二叉树的重建时,在<算法笔记>上学到了如何通过先序(或后序)遍历序列和中序遍历序列重建二叉树,它也提出了一个问题:如何通过层序和中序遍历序列重建二叉树?我一开始按照先序和中序重建的思路 ...

最新文章

  1. vue开发使用vue-particles如何兼容IE11?
  2. 网络设备Web登录检测工具device-phamer
  3. cookie 的使用
  4. 数据库中id类型和varchar类型的区别
  5. 迭代器和生成器的区别
  6. 【干货】H3C如何配置VLAN-trunk 二层隔离技术?
  7. Taran 缩点【bzoj1529】[POI2005]ska Piggy banks
  8. PHP考试插件,php秒杀插件?
  9. static函数与普通函数区别
  10. 【转】vue项目重构技术要点和总结
  11. 51单片机数码管闪烁c语言,AT89C51单片机数码管闪烁问题怎么解决
  12. 软件体系结构风格复习总结
  13. crc8校验c语言程序,单片机CRC8检验C语言实现
  14. VS2013安装SVN插件
  15. 罗技无法使用计算机上的配置文件,罗技无线鼠标接收器无法配对的详细解决办法...
  16. Pytorch iter问题
  17. 国外服务器https协议,AriaNg使用Https/WebSocket(安全)协议连接Aria2的方法
  18. 【微信开放平台】微信第三方扫码登录(亲测可用)
  19. H3C-S5560交换机设置
  20. CSS3过渡:在2个不同的渐变色之间进行动画处理

热门文章

  1. Sqlserver2008相关配置问题
  2. Activiti工作流(三)——流程变量
  3. codeforces#320(div2) D Or Game 贪心
  4. Sql Server之数据类型详解
  5. VS搭建lua开发环境和LuaBridge注册c++类(cocos2dx项目)(一)
  6. 目标检测无痛涨点:大白话 Generalized Focal Loss
  7. 移动端70+fps!谷歌新出高效实时视频目标检测
  8. 行业大牛都是同时掌握游戏建模和游戏原画的吗?
  9. 收藏 | 一文看懂注意力机制
  10. 《Python编程从入门到实践》记录之第2章 变量和简单数据类型总结(思维导图)