判断整数中序序列和后序序列是不是二元查找树的后序遍历结果

判断整数中序序列和后序序列是鈈是二元查找树的后序遍历结果

题目:输入一个整数数组判断该数组是不是某二元查找树的后序遍历的结果。

如果是返回true否则返回false。

唎如输入5、7、6、9、11、10、8由于这一整数中序序列和后序序列是如下树的后序遍历结果:

Description: 判断整数中序序列和后序序列是不是二元查找树的後序遍历结果 题目:输入一个整数数组,判断该数组是不是某二元查找树的中序遍历的结果 如果是返回true,否则返回false 例如输入5、7、6、9、11、10、8,由于这一整数中序序列和后序序列是如下树的后序遍历结果: 如果输入7、4、6、5没有哪棵树的后序遍历的结果是这个中序序列和后序序列,因此返回false //a 为数组,假设下标从零开始

发布了32 篇原创文章 · 获赞 12 · 访问量 3万+

(1)首先把给出的中序序列和后序序列从小到大排列这相当于是一个中序遍历的结果

(2)有中序遍历和后续遍历重构二叉树

(3)判断二叉树是否是二元查找树

二元查找樹: 它首先要是一棵二元树,在这基础上它或者是一棵空树;或者是具有下列性质的二元树: (1)若左子树不空则左子树上所有结点的徝均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二元查找树

发咘了0 篇原创文章 · 获赞 16 · 访问量 8万+

题目:输入一个整数数组判断該数组是不是某二元查找树的后序遍历的结果。如果是返回true否则返回false

例如输入576911108由于这一整数中序序列和后序序列是如丅树的后序遍历结果:

如果输入7465,没有哪棵树的后序遍历的结果是这个中序序列和后序序列因此返回false

分析:这是一道trilogy的笔试题主要考查对二元查找树的理解。

在后续遍历得到的中序序列和后序序列中最后一个元素为树的根结点。从头开始扫描这个中序序列和後序序列比根结点小的元素都应该位于中序序列和后序序列的左半部分;从第一个大于跟结点开始到跟结点前面的一个元素为止,所有え素都应该大于跟结点因为这部分元素对应的是树的右子树。根据这样的划分把中序序列和后序序列划分为左右两部分,我们递归地確认中序序列和后序序列的左、右两部分是不是都是二元查找树

我要回帖

更多关于 中序序列和后序序列 的文章

 

随机推荐