已知后序与中序输出前序(先序):
后序:3, 4, 2, 6, 5, 1(左右根)
中序:3, 2, 4, 1, 6, 5(左根右)
分析:因为后序的最后一个总是根结点,令i在中序中找到该根结点,则i把中序分为两部分,左边是左子树,右边是右子树。因为是输出先序(根左右),所以先打印出当前根结点,然后打印左子树,再打印右子树。左子树在后序中的根结点为root - (end - i + 1),即为当前根结点-右子树的个数。左子树在中序中的起始点start为start,末尾end点为i - 1.右子树的根结点为当前根结点的前一个结点root - 1,右子树的起始点start为i+1,末尾end点为end。

输出的前序应该为:1, 2, 3, 4, 5, 6(根左右)

#include <cstdio>
using namespace std;
int post[] = {3, 4, 2, 6, 5, 1};
int in[] = {3, 2, 4, 1, 6, 5};
void pre(int root, int start, int end) {if(start > end) return ;int i = start;while(i < end && in[i] != post[root]) i++;printf("%d ", post[root]);pre(root - 1 - end + i, start, i - 1);pre(root - 1, i + 1, end);
}int main() {pre(5, 0, 5);return 0;
}

已知后序与中序输出前序(先序)相关推荐

  1. java 像素矩阵_JAVA eclipse 中,已知灰度图像的像素矩阵怎么输出这个图像

    JAVA eclipse 中,已知灰度图像的像素矩阵如何输出这个图像? JAVA eclipse 中,已知灰度图像的像素矩阵如何输出这个图像?求指教. ------最佳解决方案------------ ...

  2. [java]已知文件 source.txt 中的内容如下,其中,username、yonghu 都表示用户名,password、mima都表示密码,level、dengji都表示等级

    已知文件 source.txt 中的内容如下 username=root , password= 1234, id=1, level= 10 username= adimin, mima= 1234 ...

  3. 在excel工作表中c1单元格_已知Excel工作表中A1单元格和B1单元格的值分别为“电子科技大学”、“信息中心”,要求在C1单元格显示“...

    已知Excel工作表中A1单元格和B1单元格的值分别为"电子科技大学"."信息中心",要求在C1单元格显示" 更多相关问题 所谓犯罪现象的特性,是指为 ...

  4. 如何过滤出已知当前目录下/llj中的所有一级目录?

    测试环境,/llj下有许多的目录.文件等: [root@test llj]# ll total 0 drwxr-xr-x 2 root root 17 Dec 3 10:04 ext -rw-r--r ...

  5. 一遍搞定!关于如何已知后序和中序序列得到前序序列的问题

    首先来个具体的问题吧,因为只是空谈显示不出效果. 如题 : 求先序排列 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点 ...

  6. 已知bug列表——Solidity中文文档(12)

    写在前面:HiBlock区块链社区成立了翻译小组,翻译区块链相关的技术文档及资料,本文为Solidity文档翻译的第十二部分<已知bug列表>,特发布出来邀请solidity爱好者.开发者 ...

  7. [二叉树]已知后序/中序遍历,求先序遍历

    二叉树后序遍历序列是dabec,中序遍历序列debac,它的前序遍历的序列是什么 1.由后序(LRD)得知C肯定为根结点 2.由中序(LDR) 以c为根节点该树必然只有左子树 3.先从后序入树 dab ...

  8. 大剑无锋之已知后续遍历bfegcda,中序badefcg,前序是?【面试推荐】

    先补充一下二叉树的三种遍历的定义: 前序遍历首先访问根结点然后遍历左子树,最后遍历右子树.在遍历左.右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树. 若二叉树为空则结束返回,否则: (1) ...

  9. C语言字符串判断是否与已知相同,C语言中判断两个字符串是否相同的方法

    C语言中判断两个字符串是否相同的方法 C语言提供了几个标准库函数,可以比较两个字符串是否相同.以下是用strcmp()函数比较字符串的一个例子: #include #include void main ...

最新文章

  1. 分享Kali Linux 2017年第二周镜像文件
  2. etcd分布式之分布式通知与协调
  3. vray for 3dmax2019中文版
  4. “伪基站”任意冒用手机号短信诈骗
  5. 队列的应用、栈的应用
  6. 浅谈缓存最终一致性的解决方案
  7. 2.数据结构笔记学习--线性表基本操作
  8. Python(28)-异常
  9. SpaceX 火箭发射成功,一文了解所用的软件技术栈!
  10. JDK各个版本的新特性jdk1.5-jdk8
  11. 手把手教你用psp手动制作背景透明的图片
  12. 经典算法:计算两个日期之间的天数
  13. 可能是最通俗的Lempel-Ziv-Welch (LZW)无损压缩算法详述
  14. 【旅行青蛙】你的蛙到底在干什么?
  15. css日落_如何拍摄好日落照片
  16. HTML简单表格的制作
  17. 获取 RRD 文件的信息
  18. SecureCRT通过SSH服务登录ubuntu出错:Password authentication failed, Please verify that the username and passw
  19. C语言中如何求幂函数
  20. HTML网页设计结课作业 DIV布局校园足球网站制作 梅西足球体育 7页

热门文章

  1. 使用Event Bus模式解耦Android App组件间通信
  2. 需要使用Git branch switch 的情况Git stash的使用时机
  3. BZOJ2653middle——二分答案+可持久化线段树
  4. fg jobs bg
  5. 【自用】手工编译lnmp环境
  6. REDHAT5.6dhcp服务器及dhcp中继代理配置
  7. ProxyToken:微软 Exchange 服务器中的认证绕过新漏洞,可窃取用户邮件
  8. 由35国42家电力输送系统运营商组成的欧洲电力协会网络遭攻击
  9. 研究员拒绝提前通知,Zoho 匆忙修复一个严重的 0day
  10. PHP date() 函数