从一棵二叉排序树中查找一个元素时,若元素的值等于根结点的值,则表明(),若元素的值小于根结点的值,则继续向()查找,若元

题目
填空题
从一棵二叉排序树中查找一个元素时,若元素的值等于根结点的值,则表明(),若元素的值小于根结点的值,则继续向()查找,若元素的值大于根结点的值,则继续向()查找。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

● 对于二叉查找树(Binary Search Tree) ,若其左子树非空,则左子树上所有结点的值均小于根结点的值;若其右子树非空,则右子树上所有结点的值均大于根结点的值;左、右子树本身就是两棵二叉查找树。因此,对任意一棵二叉查找树进行 (61) 遍历可以得到一个结点元素的递增序列。在具有 n 个结点的二叉查找树上进行查找运算,最坏情况下的算法复杂度为 (62) 。

(61)

A. 先序

B. 中序

C. 后序

D. 层序

(62)

A. O(n2

B. O(nlog2n)

C. O(log2n)

D. O(n)


正确答案:B,D

第2题:

对于二叉排序树的查找,若根结点元素的键值大于被查找元素的键值,则应该在二叉树的___上继续查找()

A、左子树

B、右子树

C、左右两棵子树

D、根接点


参考答案:A

第3题:

(1)“一棵二叉树若它的根结点的值大于左子树所有结点的值,小于右子树所有结点的值,则该树一定是二叉排序树”。该说法是否正确,若认为正确,则回答正确,若认为不正确则说明理由?(2)设有查找表{7,16,4,8,20,9,6,18,5},依次取表中数据构造一棵二叉排序树. 对上述二叉树给出后序遍历的结果.


参考答案:

第4题:

在具有101个元素的顺序表中查找值为x的元素结点时,平均比较元素的次数为()。

A.50

B.51

C.100

D.101


正确答案:B

第5题:

对于二叉查找树(Binary Search Tree),若其左子树非空,则左子树上所有结点的值均小于根结点的值;若其右子树非空,则右子树上所有结点的值均大于根结点的值。左、右子树本身就是两棵二叉查找树。因此,对任意一棵二叉查找树进行(61)遍历可以得到一个结点元素的递增序列。在具有n个结点的二叉查找树上进行查找运算,最坏情况下的算法复杂度为(62)。

A.先序

B.中序

C.后序

D.层序


正确答案:B

第6题:

若二叉排序树非空,则新结点的值和根结点比较,若小于根结点,则插入到右子树;否则插入到左子树。()

此题为判断题(对,错)。


参考答案:错误

第7题:

二叉排序树或者是一棵空树,或者是具有如下性质的二叉树:特其左子树非空,则左子树上所有节点的值均小于根节点的值;若其右子树非空,则右子树上所有节点的值均大于根节点的值;其左、右子树本身就是两棵二叉排序树。根据该定义,对一棵非空的二叉排序树进行______遍历,可得到一个节点元素的递增序列。

A.前序(根、左、右)

B.中序(左、根、右)

C.后序(左、右、根)

D.层序(从树根开始,按层次)

A.

B.

C.

D.


正确答案:D

第8题:

●二叉排序树或者是一棵空树,或者是具有如下性质的二叉树:若其左子树非空,则左子树上所有结点的值均小于根结点的值;若其右子树非空,则右子树上所有结点的值均大于根结点的值;其左、右子树本身就是两棵二叉排序树。根据该定义,对一棵非空的二叉排序树进行 (42)遍历,可得到一个结点元素的递增序列

(42)

A. 先序(根、左、右)

B. 中序(左、根、右)

C. 后序(左、右、根)

D. 层序(从树根开始,按层次)


正确答案:B

第9题:

树形查找

二叉排序树:每个结点的值都大于其左子树任一结点的值而小于其右子树任一结点的值。

查找

function treesrh(k:keytype):pointer;

var q:pointer;


正确答案:

 

begin
q:=root;
while (q<>nil) and (q^.key<>k) do
if k<q^.key then q:=q^.left
else q:=q^.right;
treesrh:=q;
end;

第10题:

阅读下列说明和流程图,将应填入(n)的语句写在对应栏内。

【流程图说明】

下面的流程(如图1所示)用N-S盒图形式描述了在一棵二叉树排序中查找元素的过程,节点有3个成员:data, left和right。其查找的方法是:首先与树的根节点的元素值进行比较:若相等则找到,返回此结点的地址;若要查找的元素小于根节点的元素值,则指针指向此结点的左子树,继续查找;若要查找的元素大于根节点的元素值,则指针指向此结点的右子树,继续查找。直到指针为空,表示此树中不存在所要查找的元素。

【算法说明】

【流程图】

将上题的排序二叉树中查找元素的过程用递归的方法实现。其中NODE是自定义类型:

typedef struct node {

int data;

struct node * left;

struct node * right;

}NODE;

【算法】

NODE * SearchSortTree(NODE * tree, int e)

{

if(tree!=NULL)

{

if(tree->data<e)

(4); //小于查找左子树

else if(tree->data<e)

(5); //大于查找左子树

else return tree;

}

return tree;

}


正确答案:(1)p=p->left (2)ptr=p->right (3)return P (4) return SearchSortTree(tree->left ) (5)return SearchSortTree(tree->right)
(1)p=p->left (2)ptr=p->right (3)return P (4) return SearchSortTree(tree->left ) (5)return SearchSortTree(tree->right) 解析:所谓二叉排序树,指的是一棵为空的二叉树,或者是一棵具有如下特性的非空二叉树:
①若它的左子树非空,则左子树上所有结点的值均小于根结点的值。②若它的右子树非空,则右子树上所有结点的值均大干根结点的值。③左、右子树本身又各是一棵二叉排序树。
先来分析流程图。在流程图中只使用一个变量p,并作为循环变量来控制循环,所以循环体中必须修改这个值。当进入循环时,首先判断p是不是为空和该结点是不是要找的结点,如果这两个条件有一个满足就退出循环,返回prt,(如果是空,则返回NULL,说明查询失败;否则返回键值所在结点的指针。)因此(3)空处应当填写“return p”。如果两个条件都不满足,就用查找键值e与当前结点的关键字进行比较,小的话,将指针p指向左子树继续查找,大的话将指针P指向右子树继续查找。于是,(1)空处应当填写“p=p->left”,(2)空处应当填写“p=p->right”。
再来分析程序。虽然是递归算法,但实现思路和非递归是一样。首先用查找键值e与树根结点的关键字比较,如果值小的话,就在左子树中查找(即返回在左子树中查找结果);如果值大的话在右子树中查找(即返回在右子树中查找结果);如果相等的活就返回树根指针。因此(4)、(5)空分别应填写“return SearehSortTree(tree->left)”和“return SearehSoaTree(tree->right)”。

更多相关问题