uva536_树的重建(由先序,中序历遍推出后续历遍)
来源:互联网 发布:杀破狼原唱js 编辑:程序博客网 时间:2024/06/05 22:31
///////////////////////////////////////////////////////////////////////////////////////////////////////
作者:tt2767
声明:本文遵循以下协议自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0
查看本文更新与讨论请点击:http://blog.csdn.net/tt2767
链接被删请百度: CSDN tt2767
///////////////////////////////////////////////////////////////////////////////////////////////////////
详细写在注释中了:
#include<cstdio>#include<iostream>#include<cstring>#include<stack>using namespace std;const int N = 100000 + 10;char pre_order[N],in_order[N];stack<char> after_order;int k = 0;void build( int l1 ,int r1 ,int l2 ,int r2 );int main(){ while(scanf("%s%s",pre_order,in_order) == 2) { int l = strlen(pre_order); k = 0; build(0,l-1,0,l-1);//建立后序历遍 while(!after_order.empty())//栈后进先出,顺序正好为后序历遍 { printf("%c",after_order.top()); after_order.pop(); } puts(""); } return 0;}void build( int l1 ,int r1 ,int l2 ,int r2 )//由先序中序直接求出后序{ if( (l1 > r1 ) || (l2 > r2) ) return ; char root = pre_order[l1]; after_order.push(root); //每次把根压入栈中 int p = l2; //每次从本次开始的地方寻找根 while(in_order[p] != root) p++; //找到中序历遍中根的位置 int cnt = p-l2; //左子树的个数 build(l1+cnt+1,r1,p+1,r2);//先建右子树,后建左子树 build(l1+1,l1+cnt,l2,p-1);}
0 0
- uva536_树的重建(由先序,中序历遍推出后续历遍)
- 二叉树的遍历(篇5)由中序和先序序列重建二叉树
- 树的遍历(中序、先序、后续)
- 由前序遍历和中序遍历重建二叉树,再实现后续遍历
- 二叉树--由中序遍历和后续遍历重建二叉树
- 代码实现 由二叉树的先序遍历和中序遍历推出后序遍历
- 由二叉树的先序中序推出后序(转)
- 二叉树的操作(二叉树的创建、先序遍历--->先根、中序遍历---->先左、后续遍历--->后根)
- NYOJ 756 重建二叉树【由二叉树的后序和中序建立二叉树并得先序】
- 二叉树非递归遍历(前序,中序,后续遍序)
- 重建二叉树 的 非递归算法(已知前序和中序)输出 层续和后续
- 二叉树重建(先序+中序)
- NYOJ221二叉树重建(已知先序和中序求后序)
- 二叉树的各种操作 先序 中序 后续 层次 遍历 求树高度 节点深度 知先序中序求后续 二叉排序树
- 由二叉树的先序中序推出后序
- 由二叉树的先序中序推出后序
- 二叉树的各种遍历(先序、中序、后续、层次)——递归、非递归
- 二叉树的建立及遍历(先序遍历、中序遍历、后续遍历、层次遍历)
- 最简单的基于FFmpeg的移动端例子:Android 视频转码器
- C - The C Answer (2nd Edition) - Exercise 1-15
- Linux目录结构
- 分布式网络爬虫Nutch中文教程nutcher(JAVA)
- 【Android归纳】Activity启动模式
- uva536_树的重建(由先序,中序历遍推出后续历遍)
- Unity基于TCP/IP的小聊天室实现
- angular js与jQuery不兼容的问题
- 视频后处理技术deinterlace
- 从豌豆荚百度撕逼中学作文
- [CodeVS1081]线段树练习2(区间修改+单点询问)
- 欢迎使用CSDN-markdown编辑器
- Java基础之多线程
- 一直以来伴随我的一些学习习惯