已知二叉树的前序和中序,求其后序

例:前序(A B D G H C E I F J ) 中序(G D H B A E I C J F) 其后序为:G H D B I E J F C A

思路:先序的遍历规则为根—左—右,中序的遍历规则为左—根—右,所以我们在中序中找到与A(A必为根)相等的字符,则在中序中G D H B为A的左子树,E I C J F为A的右子树,在左子树和右子树中,重复前面过程,最后逆向将根打印出来,就是其后序。是一个递归过程
#include <iostream>
#include <string>
using namespace std;
string s;
string ss;
void tree(int a_l, int a_r, int b_l, int b_r)
{//a_l,a_r分别表示前序子树中的左右端点int i;if (a_l == a_r){cout << s[a_l];return;//递归终止}for ( i = b_l; i <= b_r; i++){if (s[a_l] == ss[i]){tree(a_l + 1, a_l + i - b_l, b_l, i - 1);//先处理左子树tree(a_l + i - b_l + 1, a_r, i + 1, b_r);//后处理右子树cout << s[a_l];}}
}
int main(void)
{cin >> s >> ss;tree(0, s.size() - 1, 0, ss.size() - 1);return 0;
}

已知前序中序,求后序相关推荐

  1. HLG2040二叉树遍历已知前中,求后

    二叉树的遍历 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 60(34 users) Total Accepted: 34(30 us ...

  2. 二叉树已知前序中序求后序(超简单)(java)

    首先解题思路来自b站某高手,思路清奇,请看官先看视频: 无脑秒解!已知先/后序遍历与中序遍历,求后/先序遍历._哔哩哔哩_bilibili大佬轻喷,这个题做很简单,但是想做的快做的准应该没有比这更快的 ...

  3. 二叉树的遍历(前序、中序、后序、已知前中序求后序、已知中后序求前序)

    二叉树的遍历(前序.中序.后序.已知前中序求后序.已知中后序求前序)   之前的一篇随笔(二叉树.前序遍历.中序遍历.后序遍历)只对二叉树的遍历进行了笼统的描述,这篇随笔重点对前.中.后序的遍历顺序进 ...

  4. 已知前序中序输出后序(java)返回值是数组

    例子: 前序:1, 2, 3, 4, 5, 6(根左右) 中序:3, 2, 4, 1, 6, 5(左根右) 后序:3, 4, 2, 6, 5, 1(左右根) 1.先说根据前序中序求后序,前序总是沿着根 ...

  5. 二叉树:已知先序和中序求后序,已知中序和后序求先序

    树的三种遍历方式的遍历顺序: 先序遍历:根.左子树.右子树(特点:第一个元素为根) 中序遍历:左子树.根.右子树(特点:根的两边分别为左子树和右子树) 后序遍历:左子树.右子树.根(特点:最后一个元素 ...

  6. 二叉树知道前序和中序求后序,知道中序后序求中序

    今天来总结下二叉树前序.中序.后序遍历相互求法,即如果知道两个的遍历,如何求第三种遍历方法,比较笨的方法是画出来二叉树,然后根据各种遍历不同的特性来求,也可以编程求出,下面我们分别说明. 首先,我们看 ...

  7. 根据先序和中序求后序,注意递归终止条件

    #include "stdafx.h" #include <iostream> #include <string> using namespace std; ...

  8. POJ 2255 Tree Recovery(已知前序中序,求后序)

    1. 题目链接:http://poj.org/problem?id=2255 2. 题目大意: 给定二叉树的前序和中序序列,输出其后序序列 3. 思考过程: 4. AC代码 /*** @descrip ...

  9. 已知二叉树:先序和中序求后序/后序和中序求先序

    P1030 [NOIP2001 普及组] 求先序排列 # [NOIP2001 普及组] 求先序排列 ## 题目描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示, ...

  10. 已知先序和中序求后序

    先序: ABCDEFGH 中序: BDCEAFHG 求后序:DECBHGFA 具体看B站郝斌视频:https://www.bilibili.com/video/BV11s41167h6?p=71

最新文章

  1. Visual C++ 编译器选项
  2. Gridview分页模板
  3. nignx的TCP和UDP调度(nginx反向代理)
  4. C++中extern关键字的作用
  5. exists sql用法_彻底弄懂sql select各种查询用法
  6. UI设计还在为聊天界面苦恼?好的案例,打开任通二脉
  7. 一道头条算法题,一种不为人知的解法!
  8. Android 帧动画 (一)
  9. bzero 和 memset 函数对比
  10. NVIDIA Jetson Xavier NX载板 RTSO-6002使用TF(MicroSD)卡重新刷机
  11. AM、PM是上午和下午的英文缩写、英文缩写(英语星期月份等)
  12. 老范的Bug跟踪管理系统0.1 Alpha——介绍篇
  13. 热烈祝贺 | 方正璞华喜获“数字贸易专委会年度示范单位”殊荣及“终身荣誉会长”单位
  14. ROI Pooling和ROI Align、ROI Warp解析
  15. 策略路由(Policy-Based-Route)
  16. 【Python】杂记
  17. Jenkins从入门到精通
  18. C++上机实验三第2题
  19. Stata基础自学——数据查看
  20. 【Gradle】Starting a Gradle Daemon, 1 incompatible and 5 stopped Daemons could not be reused

热门文章

  1. 《以幽默的方式过一生》总结4——冬
  2. 解决跨域问题的方法 --- CORS
  3. WPS根据章节编号依次排序
  4. 变分自编码器(VAE)直观理解and 数学推导
  5. 淘宝爬虫、数据分析、童装
  6. 第六章第十五题(金融应用:打印税表)(Financial application: print a tax table)
  7. 联想拯救者R9000P 3060 VMware安装ubuntu18.04
  8. 拯救者r9000p自带win11好不好?
  9. 拯救者R9000K/P插拔电源出现黑屏解决方案
  10. 华为matebook X Pro Deepin Linux改真机装Ubuntu Linux 笔记