求先序排列(洛谷)

该博客介绍了如何根据二叉树的中序和后序排列求先序排列。内容涉及先序、中序和后序遍历的概念,并通过样例解释了利用这些遍历方法解决实际问题的思路。通过分析后序排列找到根节点,再在中序排列中确定子树,以此递归求解先序排列。
摘要由CSDN通过智能技术生成

P1030 求先序排列

题目描述

给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度 ≤8。

输入输出格式

输入格式
2行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。

输出格式:

1行,表示一棵二叉树的先序。

输入输出样例

输入样例#1:
BADC
BDCA

输出样例#1:

ABCD

知识点:
先序排列:首先来了解下什么是先序,中序和后序。在树中对结点进行访问的时候,先序就是按顺序访问根结点、左结点、右结点。
中序排列:中序是先访问左结点,然后根结点,再右结点
后序排列:后序是访问左结点,右结点,根结点

例如题中给的先序后续中序排列,我们可以得到:
在这里插入图片描述
那么我们从这个图中可以看到:

每颗树后序排列的最后一个都是树的根节点,那么我们的方法就是从每棵子树里面找到根节点,然后再到中序排列中找这个根节点,从根节点左右开始继续向下寻找,最后到底就完了。

很简短的小程序,但却反映出树的基本特点,遍历方式,思考了好久。。。。。

#include<iostream>
#include<cstdio>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值