---恢复内容开始---
问题描述
如果给出了遍历二叉树的前序序列和中序序列,则可以构造出唯一的一颗二叉树。
基本要求
已知一棵二叉树的前序序列和中序序列,试设计完成下列任务的一个算法:
(1).构造一颗二叉树
(2).证明构造正确(即分拨儿以前序和中序遍历该树,将得到的结果
与给出的序列进行比较)
(3).对该二叉树进行后序遍历,输出后序遍历序列
(4).用凹入法输出该二叉树
测试数据
前序序列为ABDEGCFHIJ,中序序列为DBGEAHFIJC
代码思路
1.确定树的根节点,树根是当前树中所有元素在前序遍历中最先出现的元素。
2.求解树的子树,找出根节点在中序遍历中的位置,根左边的所有元素就是左子树,根右边的所有元素就是右子树。若根节点左边或右边为空,则该方向子树为空;若根节点左边和右边都为空,则根节点已经为叶子节点。
3.递归求解树,将左子树和右子树分别看成一棵二叉树,重复1、2、3步,直到所有的节点完成定位。
源代码
/*