P1132 求二叉树先序序列
来源:互联网 发布:自然语言分析 python 编辑:程序博客网 时间:2024/06/10 14:30
描述
给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度≤8)。
格式
输入格式
第一行为二叉树的中序序列
第二行为二叉树的后序序列
输出格式
一行,为二叉树的先序序列
样例1
样例输入1
BADC
BDCA
BDCA
样例输出1
ABCD————————————————————————————晨昏线————————————————————————————————
这道题我个人认为DFS比较好(至于有什么其他的方法可以告诉偶)
首先,我们要按4步曲:
1.搜索什么?答:搜索看能不能找到每个家庭的父亲,然后找到左右孩子
2.终止条件?答:当长度为≤0的时候,就搜不下去,就结束
3.设定几个变量?答:3个,1个为长度,还有2个为中序和后序遍历
4.如何转移?答:显然我们要枚举一个变量i,表示当前剩余多少未枚举,然后要先遍历左孩子,再到右孩子,因为输出先序遍历
好了,不要说了吧。。
code:
#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>using namespace std;int dfs(int l,char *a,char *b){ // l为长度,a,b为中序(后序)遍历 if(l) for(int i=l;i>=1;i--) if(a[i]==b[l]){ printf("%c",a[i]); // 输出当前在的根 dfs(i-1,a,b); //继续搜索左孩子 dfs(l-i,a+i,b+i-1); //再搜索右孩子 }}int main(){ char a[1000],b[1000]; scanf("%s %s",a+1,b+1); //输入,这里为了方便,从1开始读入 int ln=strlen(a+1); dfs(ln,a,b); return 0;}
O了!
0 0
- P1132 求二叉树先序序列
- VIJOS P1132求二叉树的先序序列
- Vijos P1132 求二叉树的先序序列(递归,二叉树)
- 【递归】Vijos P1132 求二叉树的先序序列(NOIP2001普及组第三题)
- vijos P1132
- 求二叉树中某结点在层序序列中的编号
- 求二叉树的先序遍历序列
- vijos 1132 求二叉树的先序序列
- 已知两种遍历序列求原始二叉树
- [NOIP 2001PJ]求二叉树的先序序列
- LeetCode之根据序列求平衡二叉树
- 已知两种遍历序列求原始二叉树
- 求一个递增序列的二叉搜索树的数量。
- 根据先序和中序序列求二叉树
- 根据中序序列和前序序列,求二叉树的后序序列
- 二叉树前序序列、中序序列、后序序列互求
- 已知二叉树的前序序列和中序序列,求二叉树的后序序列
- 已知二叉树先序序列和中序序列,求后序序列
- 基于模板的通用代码生成器LKGenerator(一)-发布和主要功能介绍
- cruisecontrol持续集成构建web进行js压缩处理
- UNIX网络编程——socket的keep-alive
- java中注解 详解
- Learning Hadoop (1)
- P1132 求二叉树先序序列
- tomcat目录下各文件夹的作用
- UNIX网络编程——套接字选项(心跳检测、绑定地址复用)
- Q10
- SharePoint 2010 master page 控件介绍(5):其他
- nyoj-767-因子和
- hdu2873 Bomb Game 二维SG博弈
- socket之KEEPALIVE机制与原理分析
- JavaSE 8 :Lambda 快速学习(二)