单选题
对于二叉查找树(Binary Search Tree),若其左子树非空,则左子树上所有结点的值均小于根结点的值;若其右子树非空,则右子树上所有结点的值均大于根结点的值;左、右子树本身就是两棵二叉查找树。因此,对任意一棵二叉查找树进行{{U}} (63) {{/U}}遍历可以得到一个结点元素的递增序列。在具有n个结点的二叉查找树上进行查找运算,最坏情况下的算法复杂度为{{U}} (64) {{/U}}。
A、
先序
B、
后序
C、
层序
D、
中序
【正确答案】
D
【答案解析】
A、
O(
B、
O(n
2
)
C、
O(log
2
D、
O(nlog
2
【正确答案】
A
【答案解析】
[要点解析] 中序遍历二叉树的过程为:若二叉树非空,则先中序遍历左子树,然后访问根结点,最后中序遍历右子树。根据二叉查找树的定义,显然,对二叉查找树进行中序遍历,得到结点元素的递增序列。 在二叉查找树上进行查找的过程为:若二叉查找树非空,将给定值与根结点的关键字值相比较,若相等,则查找成功;若不等,则当根结点的关键字值大于给定值时,到根的左子树中进行查找。否则到根的右子树中进行查找。若找到,则查找过程是走了一条从树根到所找到结点的路径;否则,查找过程终止于一棵空树。因此,在具有n个结点的二叉查找树上进行查找的算法复杂度与树的高度同阶,即最坏情况下的算法复杂度为O(n)。
提交答案
关闭