二叉排序树序列判定

来源:互联网 发布:vb和c语言区别,详细点 编辑:程序博客网 时间:2024/06/10 14:53

二叉排序树序列判定

设二叉排序树中,关键字由1到1000的整数构成,现要查询关键字为363的结点,下述关键字序列中不可能是在二叉排序树上查找的序列是(C)

A. 2,252,401,398,330,344,397,363
B. 924,220,911,244,898,258,362,363
C. 925,202,911,240,912,245,363
D. 2,399,387,219,266,382,381,278,363

A. 这里写图片描述
拉这么开的原因是想突出左子树一定比右子树小。这个树形是满足的,即查找序列正常。
其他的一样分析。

特别看C为什么错。

这里写图片描述

看到红色数字,912是911的左子树,但是左子树居然比根大,这是不容许发生的,因此查找序列不合法!

2016.11.18 update:这篇虽然直接上手用了正确的方法解决,但是没有提炼出为什么这么做。

首先,给定的一个序列,一定是一条连通的路径。一个挨着一个。比如x,y;如果y>x,那么y就是从x往右走;如果y

0 0