二叉树前序遍历,后序遍历
求前序遍历
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;
}
二叉树前序遍历,后序遍历相关推荐
- 二叉树前序中序后序_leetcode889_go_根据前序和后序遍历构造二叉树
leetcode889_根据前序和后序遍历构造二叉树 01 - 题目 返回与给定的前序和后序遍历匹配的任何二叉树. pre 和 post 遍历中的值是不同的正整数. 示例:输入:pre = [1,2, ...
- [Leetcode][第889题][JAVA][根据前序和后序遍历构造二叉树][分治][递归]
[问题描述][中等] [解答思路] copyOfRange class Solution {public TreeNode constructFromPrePost(int[] pre, int[] ...
- java二叉树合并_Java(树的前中后序遍历构造二叉树题型整合)前序和中序、中序和后序、前序和后序遍历序列构造二叉树算法整合归纳...
前言 二叉树各种花里胡哨的算法题真的把我搞晕了,今天特地整理出一类有关二叉树的算法题,希望能帮助阅读到此文章的人,今后不再受此类题型的困扰. 一.题目类型 已知二叉树的两种遍历序列,请根据该序列构建二 ...
- [算法] 已知前序和后序遍历,建立二叉树
结点结构 typedef struct Node{char data;struct Node *left;struct Node *right; }Node; 已知前序和后序遍历,建立二叉树(不唯一, ...
- LeetCode根据前序与中序、中序与后序,前序与后序遍历序列构建二叉树
根据前序与中序遍历序列构建二叉树 LeetCode题目来源 1.1 题目描述 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是 ...
- 根据前序和后序遍历构造二叉树(附前序中序代码)
889. 根据前序和后序遍历构造二叉树 前序和中序 道理相同 改变一些细节就可以了,在最后附上了前序中序的代码 题目描述 返回与给定的前序和后序遍历匹配的任何二叉树. pre 和 post 遍历中的值 ...
- 二叉树先序遍历,中序遍历,后序遍历,层次遍历学习总结及完整C/C++代码
伪代码阐述 先序遍历 先序遍历:先访问根节点, 然后深入左子树,直到不能深入时再深入右子树 由定义可得递归式 void travPre_R(BinNodePosi* x,VISIT& visi ...
- 二叉树前中后序遍历+刷题【中】【数据结构/初阶/C语言实现】
文章目录 1. 二叉树基础操作 1.1 二叉树遍历 1.1.1 前序遍历 前序遍历(Pre-Order Traversal) 1.1.2 中序遍历 中序遍历(In-Order Traversal) 1 ...
- 二叉树前中后序遍历以及节点计算
二叉树前中后序遍历以及节点计算 二叉树 分类 二叉链的数据结构 三叉链的数据结构 四种遍历方法 深度优先遍历:前中后序 广度优先遍历:层序遍历 计算 节点个数 叶子节点个数 树的高度 第k层的节点个数 ...
- 【题解】【AcWing】1609. 前序和后序遍历
1609. 前序和后序遍历 原题传送:AcWing 1609. 前序和后序遍历 假设一个二叉树上所有结点的权值都互不相同. 我们可以通过后序遍历和中序遍历来确定唯一二叉树. 也可以通过前序遍历和中序遍 ...
最新文章
- Android系统默认Home应用程序(Launcher)的启动过程源代码分析
- Centos6.4下安装及配置FTP Server
- 比特币现金社区推出OP_RETURN的4字节前缀指南
- 【设计模式】-写在前面
- JavaScript的undefined
- python报表设计控件_使用Python快速制作可视化报表
- 2016.2.17文件夹选择框及文件选择框
- 爬虫基本原理及Request和Response分析
- Taro+react开发(37)箭头函数括号加个return
- shell中的 trap
- oracle 数据库基础配置,Oracle数据库网络服务配置基础、SQL编程详解-Oracle
- java中几个常用的开源常用工具类
- JavaSE基础-02-接口
- 求一篇计算机word文档作业,计算机应用基础作业3:Word2003
- 如何破解HIT的孤岛效应,一起关于患者主索引的案例分享
- 51单片机 定时器0中断实现LED流水灯
- 参加IBM素质拓展活动
- 【引语收集计划】《启迪》 本雅明--导言-瓦尔特.本雅明 : 1892-1940 by汉娜.阿伦特
- android 网速刻度盘 自定义view二
- 自定义店招应该具有的基本功能
热门文章
- [小O地图 EXCEL版] 经纬度坐标 转 地址文字
- Element UI库的入门使用
- UC浏览器视频播放缓存以及视频下载分析
- html5 霸刀,基于Html5技术研发3D页游《霸刀》公布
- java中Font文字对象在Centos中乱码(口口口口口)的解决方案
- csgo降低延迟指令_打开NVIDIA 驱动程序FPS降低操作延迟技术,让你的游戏操作如丝般润滑...
- 月光族的两天生活--传说哥月月光
- 苹果确认不会放弃Touch ID,iPhone 11还没发布就火爆一片,真是香啊
- Linux系统下Oracle数据库自动备份脚本经验分享
- JavaScript入门-第1章 请做好准备