题目描述:

输入一棵树的先序遍历和中序遍历序列,输出后序遍历序列

AC代码:

#include<cstdio>
#include<cstring>const int MAX_N = 30;
char pre_order[MAX_N], in_order[MAX_N];
int lch[MAX_N], rch[MAX_N];
char root;//根据前序 L1~R1, 中序 L2~R2构造二叉树
int build(int L1, int R1, int L2, int R2) {if(L2 > R2) return -1;int root = pre_order[L1] - 'A';int p = L2; while(in_order[p] != root + 'A') p++;int cnt = p - L2;  //左子结点的个数 lch[root] = build(L1+1, L1+cnt, L2, L2+cnt-1);rch[root] = build(L1+cnt+1, R1, L2+cnt+1, R2);return root;
}void PostOrder(int x) {if(x == -1) return;PostOrder(lch[x]);PostOrder(rch[x]);printf("%c", x+'A');
}int main() {#ifdef LOCALfreopen("input.txt", "r", stdin);freopen("output.txt", "w", stdout);#endifwhile(scanf("%s%s", pre_order, in_order) == 2) {root = build(0, strlen(pre_order)-1, 0, strlen(in_order)-1);PostOrder(root);printf("\n");}return 0;
}

习题6_3 二叉树重建(Tree Recovery, ULM 1997, UVa536)相关推荐

  1. 习题6-3 二叉树重建(Tree Recovery, ULM 1997, UVa 536)

    经典的分治法.. #include <iostream> #include <string> #include <vector> #include <stac ...

  2. 习题6-3 二叉树重建(Tree Recovery,ULM 1997,UVa 536)

    原题链接:https://vjudge.net/problem/UVA-536 分类:树 备注:水题 代码如下: #include<cstdio> #include<string&g ...

  3. 【数据结构】二叉树 (Binary Tree)

    目录 一. 什么是树? 二. 二叉树 特殊二叉树 二叉树的性质 二叉树的存储 二叉树的遍历 二叉树的基本操作 一.什么是树? 之前咱们学习了一些简单的数据结构,如顺序表,链表,这些都是线性结构,线性结 ...

  4. 二叉树 Binary Tree

    我怀着激动的心 走上了这颗树 今天是2021年11月12日 今天开始上树!!!!!! 生活中的树形结构: 树:  根节点: 一棵树有且只有一个根节点就是最上面的节点 兄弟节点: 每一行的节点  它们具 ...

  5. 『数据结构与算法』解读树(Tree)和二叉树(Binary Tree)!

    『数据结构与算法』解读树(Tree)和二叉树(Binary Tree)! 文章目录 一. 树 1.1. 树的定义 1.2. 树的基本术语 1.3. 树的性质 二. 二叉树 2.1. 二叉树的定义 2. ...

  6. 二叉树——重建二叉树

    二叉树--重建二叉树 例如,某二叉树为: 前序遍历为:(4,7,9,2,1,5,6) 中序遍历为:(7,9,4,1,2,6,5) 后序遍历为:(9,7,1,6,5,2,4) 1.前序遍历+中序遍历 = ...

  7. c++实现简单的数据结构(1.链表合并 2.士兵队列训练问题 3.Rails 4.Josephus Problem 5.Tree Recovery 6.四则运算 7.愚人节的礼物 8.Web)

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮 ...

  8. Uva536 Tree Recovery二叉树重建(先序和中序确定二叉树,后序输出)

    题目大意:给定二叉树先序和中序遍历,输出二叉树后序遍历. 方法:将英文字母映射为数字,利用数组存储,先序第一个节点是父节点,然后再从中序遍历中找到位置.注意边界.代码也很简单一次ac. #includ ...

  9. POJ 2255 Tree Recovery 二叉树恢复

    一道和Leetcode的一道题目基本上一样的题目. 给出前序遍历和中序遍历序列,要求依据这些信息恢复一颗二叉树的原貌,然后按后序遍历序列输出. Leetcode上有给出后序和中序,恢复二叉树的. 只是 ...

最新文章

  1. js 抛出异常 throw
  2. mysql更改锁机别_MYSQL调度与锁定问题(转)
  3. Windows7 连接Windows Server服务器时提示:计算机无法连接到远程计算机上的另一个控制台会话。...
  4. Leetcode 102. 二叉树的层次遍历 解题思路及C++实现
  5. 使用outputstream写到指定位置_MaxCompute Spark与Spark SQL对比分析及使用注意事项
  6. Java从入门到熟悉的48道练习题[完结]
  7. eeglab绘制脑电头皮图、通道对应光谱图
  8. android 倒计时类,Android倒计时工具类
  9. lua 遍历删除_lua中table如何安全移除元素
  10. HTML5正确嵌入flash,网页上嵌入Flash播放器(1)
  11. xp系统计算机远程桌面连接不上,在XP系统中远程桌面连接不上的解决方式
  12. 本地项目文件上传到码云的全过程(附每个步骤详细插图)
  13. qemu安卓版免root_用qemu运行一个小小Linux系统
  14. 个人电脑php漏洞怎么修复,PHP版 6.0 漏洞 要怎么修复
  15. 生成100个p元素,隔行变色(红、黄、蓝、绿、紫)
  16. 访问页面转圈圈,怎么分析
  17. 中国首个“芯片大学”即将落地;生成对抗网络(GAN)的数学原理全解
  18. 前端开发(html)
  19. SEED LABS初入
  20. openflow交换机 ryu_openflow的初步认识及RYU控制器实践

热门文章

  1. 基于SpringBoot的校园新闻管理系统
  2. 2022年第五届全国应用统计(MAS)专业学位研究生案例大赛企业选题
  3. 2008年文兴小学图书室工作计划
  4. 面向对象分析烤地瓜项目
  5. 中小企业及个人如何3步做出完美关键词
  6. 可穿戴电子设备老化测试指南
  7. MWC2018 机智云发布gokit4.0G全栈IoT开发套件,支持高通MDM9206
  8. 《双人成行》和制作人约瑟夫·法斯(Josef Fares)
  9. 爬取微博用户公开信息,分析听李逼的逼粉们他们的真实年龄
  10. 智慧旅游背景下的景区新模式建设方案研讨