证明二叉搜索树的顺序遍历是排序的(无归纳)



>我可以证明按顺序遍历二叉搜索树会产生值的排序级数,而无需使用归纳法吗?

这不是一个真正的家庭作业问题。

这是我对矛盾证明的草图。

我们的目标是证明有限有序二叉树的有序遍历会产生有序序列。

为了通过矛盾来证明这一点,我们首先假设相反:存在一些有序的二叉树,使得它的有序遍历产生一个无序序列。 由于我们的树是有限的,因此必须有一个最小的实例。 我们称这棵树为T。

现在,T 不能是单例(即只是一片叶子(,因为单例的遍历会产生一个长度为 1 的序列,这是平凡有序的。

因此,T 必须具有某种形状,L-x-R,其中 x 是分别连接左右子树 L 和 R 的顶点值。

由于 T 是最小且有序的,因此 L 和 R 必须是有序树,其有序遍历产生有序序列。 此外,我们知道 L 中的所有项不能大于 x,R 中的所有项都不能小于 x。 现在,T 的遍历是 [T] = [L] ++ [x] ++ [R]。 但是这个序列必须是有序的,这与我们最初关于T的假设相矛盾。

因此不存在

这样的 T,因此任何有序二叉树的有序遍历都必须产生有序序列。

霍扎特?

最新更新