算法笔记--分治(求后序遍历)
来源:互联网 发布:数据安全防护功能 编辑:程序博客网 时间:2024/05/18 06:41
由前序遍历和中序遍历求后序遍历
Sample Input
9
1 2 4 7 3 5 8 9 6
4 7 2 1 8 5 9 3 6
Sample Output
7 4 2 8 9 5 6 3 1
#include<cstdio>int qian[1005],zhong[1005];void ecs(int a,int b,int n,int flag) //在前序是第几个,在中序是第几个,几个元素,是否第一棵树{ if(n==1) //叶节点 { printf("%d ",qian[a]); return; } else if(n<=0) return; //如果不存在左子树或右子树就返回上一层 int i; for(i=0;qian[a]!=zhong[b+i];i++); //遍历左子树的数目 ecs(a+1,b,i,0); //左子树 ecs(a+1+i,b+i+1,n-i-1,0); //右子树 if(flag==1)//最原始的跟节点 printf("%d",qian[a]); else//一般的根节点 printf("%d ",qian[a]);}int main(){ int n,i; while(scanf("%d",&n)==1) { for(i=1;i<=n;i++) scanf("%d",&qian[i]); for(i=1;i<=n;i++) scanf("%d",&zhong[i]); ecs(1,1,n,1); printf("\n"); } return 0;}
阅读全文
0 0
- 算法笔记--分治(求后序遍历)
- 算法课笔记系列(一)—— 分治算法
- 算法练习笔记(三)— 分治算法
- 算法练习笔记(四)— 分治算法
- #1049 : 后序遍历分治算法
- 算法学习笔记 2.2分治
- 算法笔记二分治法
- 算法笔记(问题分解,分治与动态规划)
- Algorithm学习笔记 --- 计数问题(分治算法)
- 分治策略(算法)
- 算法四(分治)
- 【算法学习笔记】之分治算法
- 算法学习笔记之分治算法
- 判断一个序列是否是一棵二叉树的后序遍历序列(分治算法)
- 算法笔记(有根树遍历)
- 算法思想笔记——分治法
- 算法导论学习笔记--1--分治排序
- 算法学习笔记——分治法
- canvas 多个图片叠加,图片覆盖图片显示到imageview
- 多线程程序中操作的原子性
- spark中的一些基本概念(等我看完代码回来填坑)
- 关于c的printf一些小问题技巧
- kingsley-sun的博客
- 算法笔记--分治(求后序遍历)
- MTK_android项目驱动设置
- acm1905Pseudoprime numbers
- EA&UML日拱一卒-活动图::ReadSelfAction和ReadStructuralFeatureAction
- 在面试准备中总结的一些面试题
- 求解概率相关的题目的解法
- Stack Clash:Linux安全杀手
- dubbo命令行
- Ubuntu 16.04 adb devices : no permissions 解决方法