首页 > 软考
题目内容 (请给出正确答案)
[主观题]

从具有n个结点的二叉查找树中查找一个元素时,在最坏情况下进行成功查找的时间复杂度为(51)。A.O(n

从具有n个结点的二叉查找树中查找一个元素时,在最坏情况下进行成功查找的时间复杂度为(51)。

A.O(n)

B.O(1)

C.O(log2n)

D.O(n2)

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“从具有n个结点的二叉查找树中查找一个元素时,在最坏情况下进行…”相关的问题
第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)

点击查看答案
第2题
以下关于二叉排序树(或二叉查找树、二叉搜索树)的叙述中,正确的是()A.对二叉排序树进行先序、中序

以下关于二叉排序树(或二叉查找树、二叉搜索树)的叙述中,正确的是()

A.对二叉排序树进行先序、中序和后序遍历,都得到结点关键字的有序序列

B.含有N个结点的二叉排序树高度为【log2n】+1

C.从根到任意二个叶子结点的路径上,结点的关键字呈现有序排列的特点

D.从左到右排列同层次的结点,’其关键字呈现有序排列的特点

点击查看答案
第3题
试题四阅读下列函数说明和C函数,将应填入 (n) 处的字句写在答题纸的对应栏内。[函数说明]函数Dele

试题四

阅读下列函数说明和C函数,将应填入 (n) 处的字句写在答题纸的对应栏内。

[函数说明]

函数DeleteNode(Bitree *r,int e)的功能是:在树根结点指针为r的二叉查找(排序)树上删除键值为e的结点,若删除成功,则函数返回0,否则函数返回-1。二叉查找树结点的类型定义为:

typedef struct Tnode{

int data;

struct Tnode *Lchild,*Rchild;

}*Bitree;

在二叉查找树上删除一个结点时,要考虑三种情况:

1若待删除的结点p是叶子结点,则直接删除该结点;

2若待删除的结点p只有一个子结点,则将这个子结点与待删除结点的父结点直接连接,然后删除结点p;

3若待删除的结点p有两个子结点,则在其左子树上,用中序遍历寻找关键值最大的结点s,用结点s的值代替结点p的值,然后删除结点s,结点s必属于上述1、2情况之一。

[函数代码]

int DeleteNode(Bitree *r,int e) {

Bitreep = *r, pp, s, c;

while((1) ) { /*从树根结点出发查找键值为e的结点*/

pp = p;

if (e< p->data) p = p -> Lchild;

else p = p->Rchild;

}

if(!p) return –1; /* 查找失败 */

if(p->Lchild && p->Rchild) { /* 处理情况3 */

s = (2);pp = p;

while ((3) ) { pp = s; s = s-> Rchild; }

p->data = s ->data; p = s;

}

/*处理情况1、2*/

if((4) ) c = p -> Lchild;

elsec = p -> Rchild;

if(p == *r) *r = c;

elseif ((5) ) pp -> Lchild = c;

elsepp->Rchild = c;

free(p);

return 0;

}

点击查看答案
第4题
结点数目为n的二叉查找树(二叉排序树)的最小高度为(52)、最大高度为(53)。A.nB.C.[log2n]D.[log2(n
结点数目为n的二叉查找树(二叉排序树)的最小高度为(52)、最大高度为(53)。

A.n

B.结点数目为n的二叉查找树(二叉排序树)的最小高度为(52)、最大高度为(53)。A.nB.C.[lo

C.[log2n]

D.[log2(n+1)]

点击查看答案
第5题
结点数目为n的二叉查找树(二叉排序树)的最小高度为(56)、最大高度为(57)。

结点数目为n的二叉查找树(二叉排序树)的最小高度为(56)、最大高度为(57)。A.AB.BC.CD

A.A

B.B

C.C

D.D

点击查看答案
第6题
利用逐点插入建立序列(50,72,43,85,75,20,35,45,65,30)对应的二叉查找树后,查找元素35要进行(29)

利用逐点插入建立序列(50,72,43,85,75,20,35,45,65,30)对应的二叉查找树后,查找元素35要进行(29)次元素间比较。

A.2

B.3

C.4

D.5

点击查看答案
第7题
二叉搜索树可用来对n个元素进行排序。试编写一个排序算法,首先将n个元素a[1..n]插人到一个空的

二叉搜索树中,然后对树进行中序遍历,并将元素按序放人数组a中,为简单起见,假设a中的数据互不相同。试编写一个函数,从一棵二叉搜索树中删除最大元素。要求函数的时间复杂性必须是O(h),其中h是二叉搜索树的高度。

点击查看答案
第8题
阅读下列说明和流程图,将应填入(n)的语句写在对应栏内。 【流程图说明】 下面的流程(如图1所示)用N-

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

【流程图说明】

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

【算法说明】

【流程图】

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

阅读下列说明和流程图,将应填入(n)的语句写在对应栏内。 【流程图说明】 下面的流程(如图1所示)用

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;

}

点击查看答案
第9题
在某个二叉查找树(即二叉排序树)中进行查找时,效率最差的情形是该二叉查找树是(59) 。A.完全二叉

在某个二叉查找树(即二叉排序树)中进行查找时,效率最差的情形是该二叉查找树是(59) 。

A.完全二叉树

B.平衡二叉树

C.单枝树

D.满二叉树

点击查看答案
第10题
● 对于n 个元素的关键字序列{k1,k2,…,kn}, 若将其按次序对应到一棵具有 n 个结点的完全二叉树上,
使得任意结点都不大于其孩子结点(若存在孩子结点), 则称其为小顶堆。根据以上定义, (43) 是小顶堆

● 对于n 个元素的关键字序列{k1,k2,…,kn}, 若将其按次序对应到一棵具有 n 个结点的完

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改