P1030 求先序排列
题目描述
给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度 ≤8。
输入输出格式
输入格式:
2行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。
输出格式:
1行,表示一棵二叉树的先序。
输入输出样例
输入样例#1:
BADC
BDCA
输出样例#1:
ABCD
知识点:
先序排列:首先来了解下什么是先序,中序和后序。在树中对结点进行访问的时候,先序就是按顺序访问根结点、左结点、右结点。
中序排列:中序是先访问左结点,然后根结点,再右结点
后序排列:后序是访问左结点,右结点,根结点
例如题中给的先序后续中序排列,我们可以得到:
那么我们从这个图中可以看到:
每颗树后序排列的最后一个都是树的根节点,那么我们的方法就是从每棵子树里面找到根节点,然后再到中序排列中找这个根节点,从根节点左右开始继续向下寻找,最后到底就完了。
很简短的小程序,但却反映出树的基本特点,遍历方式,思考了好久。。。。。
#include<iostream>
#include<cstdio>