5400: 基础实验4-2.4:搜索树判断

内存限制:512 MB 时间限制:2.000 S
评测方式:文本比较 命题人:
提交:23 解决:8

题目描述

对于二叉搜索树,规定:
  • 任一结点的左子树仅包含严格小于该结点的键值,右子树包含大于或等于该结点的键值;
  • 若交换每个节点的左右子树,得到的树叫做镜像二叉搜索树。 
现给出一个整数键值序列,请编写程序判断该序列是否为某棵二叉搜索树或某镜像二又搜索树的前序遍历序列,如果是,则输出对应二叉树的后序遍历序列。

输入

第1行:包含一个正整数N(≤1000)
第2行:包含N个整数,为给出的整数键值序列(前序遍历序列)。

输出

第1行:输出"YES"或"NO"表示判断结果;
第2行:如果判断结果是"NO"不输出,如果是"YES"则输出对应二叉树的后序遍历序列数字间以空格分隔。

样例输入 复制

7
8 6 5 7 10 8 11

样例输出 复制

YES
5 7 6 8 11 10 8 

来源/分类