《数据结构》网课 邓俊辉 习题详细解析(第七章:二叉搜索树)

(a)概述

1.二叉搜索树之区别于普通的二叉树在于(A)
A.任意节点均不大于其右子树中的节点,不小于其左子树中的节点
B.任意节点均不大于其右孩子,不小于其左孩子
C.除了根节点外所有节点均不大于父亲
D.关键码可以比较

解析:二叉搜索树是二叉树的子集,其与一般二叉树的区别是:二叉搜索树中任意一个节点均不小于其左子树中的任何一个节点,且不大于右子树中的任何一个节点。

2.二叉搜索树的何种遍历序列是递增的(B)
A.先序
B.中序
C.后序
D.层次

解析:二叉搜索树的宏观特性为:树的中序遍历序列是递增的,化为局部特性就是顺序性,即任意节点均不小于其左子树中的任何一个节点,且不大于右子树中的任何一个节点。

(b1)BST:查找

1.在含n个节点的BST中进行查找的最坏时间复杂度为(C)
A.O(1)
B.O(log2(n))
C.O(n)
D.O(nlog2(n))

解析:二叉搜索树的查找的最坏时间复杂度为O(h),其中h为二叉搜索树的高度。当此二叉搜索树退化成一种单链情况时,树高与节点的个数同阶(树高=节点数-1),此时的时间复杂性就是O(n)。

2.在以上二叉查找树中查找关键码13,经过的节点依次为(C)
A.16,11,13
B.16,10,5,8,13
C.16,19,11,15,13
D.以上二叉树根本不是二叉查找树

解析:判断一棵二叉树是否是二叉查找树只需判断该二叉树的中序遍历序列是否单调不降即可,由此可以判断该二叉树是二叉查找树。二叉查找树的查找顺序为:首先从根节点开始,如果大于根节点则进入右子树,如果小于根节点则进入左子树,如果与根节点相等则查找成功,由此可以确定路径为:16-10-11-15-13。

(b2)BST:插入

对BST进行插入操作,对待插入的目标元素e进行查找后,若查找失败,_hot指向的节点为(B)
A.待插入的节点
B.被插入后的父亲
C.e被插入后的左孩子
D.根节点

解析:对于二叉搜索树的插入算法,_hot变量指向的是被插入节点的父节点。

(b3)BTS:删除

当欲删除的节点v在BST中的度为2时,实际被删除的节点为(C)
A.v在中序遍历下的直接前驱
B.v在先序遍历下的直接后继
C.v的右子树中左侧分支的最后一个节点
D.v的父亲

解析:在执行二叉搜索树的删除算法时,如果被删除的节点具有两棵子树,则需要交换该节点与右子树左侧分支的最后一个节点的数据后,删除右子树左侧分支的最后一个节点。

(c)平衡与等价

1.在含n个结点、高度为h的BST中进行查找的最坏时间复杂度为(A)

A.O(h)
B.O(n)
C.O(nh)
D.O(n/h)

解析:二叉搜索树的查找算法的最坏时间复杂度与树的高度成正比,因此时间复杂度为O(h)。

2.含n个结点,高度为h的BST称为平衡二叉搜索树若它满足(C)
A.n=O(h)
B.h=O(n)
C.h=O(log2n)
D.n=O(log2h)

解析:平衡二叉搜索树是指树高h和顶点数n满足关系h=O(log2n)的二叉搜索树。

3.两个等价的平衡二叉搜索树有相同的(B)
A.先序遍历序列
B.中序遍历序列
C.后序遍历序列
D.层次遍历序列

解析:等价二叉搜索树是指具有相同中序遍历序列的两棵二叉树。

(d1)AVL树:重平衡

1.在AVL树中刚插入一个节点后失衡节点个数最多为(C)
A.O(1)
B.O(lglgn)
C.O(lgn)
D.O(n)

解析:在AVL树中插入一个节点会影响其所有祖先节点的平衡因子,因此在极端情况下,也就是在AVL树的底部插入一个新节点会使得”树高-1“个节点的平衡因子发生变化,有可能导致同样个数的节点发生失衡,所以在AVL树种插入一个节点后失衡节点的个数最多为O(lgn)。

2.在AVL树中刚删除一个节点后失衡节点个数最多为(A)
A.O(1)
B.O(lglgn)
C.O(lgn)
D.O(n)

解析:在AVL树中删除一个节点只会导致其父节点的平衡因子发生变化,因此删除一个节点最多导致一个节点发生失衡,即个数为O(1)。

3.以上AVL树根节点的平衡因子为(A)
A.-1
B.0
C.1
D.2

解析:根据节点的平衡因子的定义,即平衡因子=左子树高度-右子树高度=2-3=-1,即求解。

4.高度为3的AVL树至少包含几个节点?(7个)

解析:AVL树中节点个数与树的高度满足不等式 n>=fib(h+3)-1,且fib(1)=fib(2)=1,由此求解得节点数至少为7。

(d2)AVL树:插入

AVL树中插入节点引发失衡,经旋转调整后重新平衡,此时包含节点g,p,v的子树高度(B)
A.减小1
B.不变
C.增加1
D.有可能不变也可能增加1

解析:AVL树在插入节点后如果引发失衡则需要旋转复衡,经过复衡后的AVL树的平衡情况与插入节点前的平衡情况相同,因此高度不会发生任何变化。

(d3)AVL树:删除

AVL树中删除节点引发失衡,经旋转调整后重新平衡,此时包含节点g,p,v的子树高度(D)
A.减小1
B.不变
C.增加1
D.有可能不变也有可能减小1

解析:AVL树中删除节点可能导致上方节点失衡,因此需要进行旋转调整,此时上方节点的子树高度可能不变,但是也有可能减小1,这是与插入操作不同的地方。

(d4)AVL树:(3+4)-重构

经过3+4重构后的AVL树(B)不变
A.先序遍历序列
B.中序遍历序列
C.后序遍历序列
D.层次遍历序列

解析:经过3+4重构后的AVL树的中序遍历序列仍然保持不变。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值