A选项的查找比较路径是这样的
28
\
36
/
18
\
46
/
35
该选项,若说它是升序排序树,18在右子树上,若说是降序排序树,则显然不是。
B选项的查找比较路径是这样的
18
\
36
/
28
\
46
/
35
这里看的是以36为根的子树,弃选它道理同上。36的右左子树上既有28,又有46、35。
C选项的查找比较路径是这样的
48
/
28
/
18
\
36
/
35
则以28为根的子树,它的左子树上既有18又有36、35。所以弃选。
选项D的查找比较路径如下
46
/
36
/
18
\
28
\
35
完全符合条件,所以正确选项是D。
选D,首先查找46结点:46>35,所以到46结点的左子树继续查找:36>35,继续到36结点左子树查找:18<35,到18结点的右子树查找:28<35,到28结点的右子树查找:35=35,结束。其余答案不对。如B中,查找了36结点之后应该到36的左子树去查找的,所以往后的所有结点应该要比36小,然而46在36结点之后,不可能出现这种情况。
这个应该是选择B吧。就二叉排序树而言,其特征有3点,(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树;根据这个特点可排除ACD。比如说A,第一次比较的数是28,但是关键字是35,那么应该遍历28的右子树(易知28为根节点),那么接下来要遍历,或者说要比较的数应该比28要大(根据二叉排序树的第2个特点),但是A选项中后面出现了18,故A错了。CD选项也同理也错了。只有B选项正确。