求前序遍历
Description
给出一棵二叉树的中序和后序遍历,求它的前序遍历。(树结点用不同的大写字母表示,长度小于等于26。)

Input
本问题有多组测试数据,每组测试数据有两行,每行都是由大写字母组成,分别表示一颗二叉树的中序和后序遍历。

Output
根据给定的中序和后序遍历,输出相应的前序遍历。

Sample Input
BADC
BDCA
Sample Output
ABCD

#include<bits/stdc++.h>
using namespace std;
string dfs(string sZ,string sH);
int main()
{string hm,zj;while(cin>>zj>>hm){cout<<dfs(zj,hm)<<endl;}return 0;
}
string dfs(string sZ,string sH)
{string sZ1,sZ2,sH1,sH2,ans;char gen;int cd,wz;cd=sZ.size();gen=sH[cd-1];wz=sZ.find(gen);ans="";ans+=gen;if(cd>1){if(wz>0){sZ1=sZ.substr(0,wz);sH1=sH.substr(0,wz);ans+=dfs(sZ1,sH1);}if(wz+1<cd){sZ2=sZ.substr(wz+1,cd-1-wz);sH2=sH.substr(wz,cd-1-wz);ans+=dfs(sZ2,sH2);}}return ans;
}

Description
给出一棵二叉树的前序和中序遍历,求它的后序遍历。(树结点用不同的大写字母表示,长度小于等于26。)

Input
本问题有多组测试数据,每组测试数据有两行,每行都是由大写字母组成,分别表示一颗二叉树的前序和中序遍历。

Output
根据给定的前序和中序遍历,输出相应的后序遍历。

Sample Input
ABCD
BADC

Sample Output
BDCA

#include<bits/stdc++.h>
using namespace std;
string nsj(string qm,string zj);
int main()
{string qm,zj;while(cin>>qm>>zj){cout<<nsj(qm,zj)<<endl;}return 0;
}
string nsj(string qm,string zj)
{string h,qm1,qm2,zj1,zj2;char g;int a,gwz;a=zj.size();g=qm[0];gwz=zj.find(g);if(a>1){if(gwz>=1){zj1=zj.substr(0,gwz);qm1=qm.substr(1,gwz);h+=nsj(qm1,zj1);}if(gwz<a-1){zj2=zj.substr(gwz+1,a-gwz-1);qm2=qm.substr(gwz+1,a-gwz-1);h+=nsj(qm2,zj2);}}h+=g;return h;
}

二叉树前序遍历,后序遍历相关推荐

  1. 二叉树前序中序后序_leetcode889_go_根据前序和后序遍历构造二叉树

    leetcode889_根据前序和后序遍历构造二叉树 01 - 题目 返回与给定的前序和后序遍历匹配的任何二叉树. pre 和 post 遍历中的值是不同的正整数. 示例:输入:pre = [1,2, ...

  2. [Leetcode][第889题][JAVA][根据前序和后序遍历构造二叉树][分治][递归]

    [问题描述][中等] [解答思路] copyOfRange class Solution {public TreeNode constructFromPrePost(int[] pre, int[] ...

  3. java二叉树合并_Java(树的前中后序遍历构造二叉树题型整合)前序和中序、中序和后序、前序和后序遍历序列构造二叉树算法整合归纳...

    前言 二叉树各种花里胡哨的算法题真的把我搞晕了,今天特地整理出一类有关二叉树的算法题,希望能帮助阅读到此文章的人,今后不再受此类题型的困扰. 一.题目类型 已知二叉树的两种遍历序列,请根据该序列构建二 ...

  4. [算法] 已知前序和后序遍历,建立二叉树

    结点结构 typedef struct Node{char data;struct Node *left;struct Node *right; }Node; 已知前序和后序遍历,建立二叉树(不唯一, ...

  5. LeetCode根据前序与中序、中序与后序,前序与后序遍历序列构建二叉树

    根据前序与中序遍历序列构建二叉树 LeetCode题目来源 1.1 题目描述 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是 ...

  6. 根据前序和后序遍历构造二叉树(附前序中序代码)

    889. 根据前序和后序遍历构造二叉树 前序和中序 道理相同 改变一些细节就可以了,在最后附上了前序中序的代码 题目描述 返回与给定的前序和后序遍历匹配的任何二叉树. pre 和 post 遍历中的值 ...

  7. 二叉树先序遍历,中序遍历,后序遍历,层次遍历学习总结及完整C/C++代码

    伪代码阐述 先序遍历 先序遍历:先访问根节点, 然后深入左子树,直到不能深入时再深入右子树 由定义可得递归式 void travPre_R(BinNodePosi* x,VISIT& visi ...

  8. 二叉树前中后序遍历+刷题【中】【数据结构/初阶/C语言实现】

    文章目录 1. 二叉树基础操作 1.1 二叉树遍历 1.1.1 前序遍历 前序遍历(Pre-Order Traversal) 1.1.2 中序遍历 中序遍历(In-Order Traversal) 1 ...

  9. 二叉树前中后序遍历以及节点计算

    二叉树前中后序遍历以及节点计算 二叉树 分类 二叉链的数据结构 三叉链的数据结构 四种遍历方法 深度优先遍历:前中后序 广度优先遍历:层序遍历 计算 节点个数 叶子节点个数 树的高度 第k层的节点个数 ...

  10. 【题解】【AcWing】1609. 前序和后序遍历

    1609. 前序和后序遍历 原题传送:AcWing 1609. 前序和后序遍历 假设一个二叉树上所有结点的权值都互不相同. 我们可以通过后序遍历和中序遍历来确定唯一二叉树. 也可以通过前序遍历和中序遍 ...

最新文章

  1. Android系统默认Home应用程序(Launcher)的启动过程源代码分析
  2. Centos6.4下安装及配置FTP Server
  3. 比特币现金社区推出OP_RETURN的4字节前缀指南
  4. 【设计模式】-写在前面
  5. JavaScript的undefined
  6. python报表设计控件_使用Python快速制作可视化报表
  7. 2016.2.17文件夹选择框及文件选择框
  8. 爬虫基本原理及Request和Response分析
  9. Taro+react开发(37)箭头函数括号加个return
  10. shell中的 trap
  11. oracle 数据库基础配置,Oracle数据库网络服务配置基础、SQL编程详解-Oracle
  12. java中几个常用的开源常用工具类
  13. JavaSE基础-02-接口
  14. 求一篇计算机word文档作业,计算机应用基础作业3:Word2003
  15. 如何破解HIT的孤岛效应,一起关于患者主索引的案例分享
  16. 51单片机 定时器0中断实现LED流水灯
  17. 参加IBM素质拓展活动
  18. 【引语收集计划】《启迪》 本雅明--导言-瓦尔特.本雅明 : 1892-1940 by汉娜.阿伦特
  19. android 网速刻度盘 自定义view二
  20. 自定义店招应该具有的基本功能

热门文章

  1. [小O地图 EXCEL版] 经纬度坐标 转 地址文字
  2. Element UI库的入门使用
  3. UC浏览器视频播放缓存以及视频下载分析
  4. html5 霸刀,基于Html5技术研发3D页游《霸刀》公布
  5. java中Font文字对象在Centos中乱码(口口口口口)的解决方案
  6. csgo降低延迟指令_打开NVIDIA 驱动程序FPS降低操作延迟技术,让你的游戏操作如丝般润滑...
  7. 月光族的两天生活--传说哥月月光
  8. 苹果确认不会放弃Touch ID,iPhone 11还没发布就火爆一片,真是香啊
  9. Linux系统下Oracle数据库自动备份脚本经验分享
  10. JavaScript入门-第1章 请做好准备