Jeff的错题集(六):之前的存货,忘发了。

题一:
在图B-1所示的平衡二叉树中,插入关键字48后得到一棵新平衡二叉树。在新平衡二叉树中,关键字37所在结点的左、右子结点中保存的关键字分别是()。
图B-1
在这里插入图片描述

正确答案: C 你的答案: B (错误)
13,48
24,48
24,53
24,90
解答:
1
2
3
平衡二叉树全称是平衡二叉搜索树,所以本质是二叉搜索树

左结点的权值比根节点小,根结点权值比右结点小,以此规则将48插到37的右子树里去。 插入48之后属于右左双旋转的情况,按照图示的方法先做右单旋转,再做左单旋转

复制代码
1
2
3
右单旋转:以37为轴,53顺时针旋转(向下),原本是37左孩子的48成为53的左孩子24的右孩子由53变为37
左单旋转:仍然以37为轴,24逆时针旋转(向下),成为37的左孩子

题二:
下面关于二叉搜索树正确的说法包括________。
正确答案: C 你的答案: B (错误)
待删除节点有左子树和右子树时,只能使用左子树的最大值节点替换待删除节点。
给定一棵二叉搜索树的前序和后序遍率历结果,无法确定这棵二叉搜索树。
给定一棵二叉搜索树,根据节点值大小排序所需时间复杂度是线性的。
给定一棵二叉搜索树,可以在线性时间复杂度内转化为平衡二叉搜索树。

解答:
A可以用右子树最小结点来替代 错误
B 对于搜索树来说,只要知道前序遍历就能还原了,第一个是根结点,之后的连续K个小于根节点的为左子树,后面的都是右子树,然后递归; 错误
C 正确, 中序遍历就可以了
D 如果允许额外的存储空间,可以先按照C生成一个排好序的数组,然后不断的找mid节点作为根来构造平衡树就是线性的,如果不允许额外空间只能靠旋转的话无法用线性时间。因为题目是单选,只能理解为不允许额外的存储空间了,

题三:

求最小生成树的普里姆(Prim)算法中边上的权可正可负。 ()
正确答案: A 你的答案: B (错误)
正确
错误
解答:
普里姆算法是允许负数的。只不过严版数据结构以及很多权威教材都是一个辅助数组既充当访问标记数组又充当边的权值数组,并且多数取<0的数作为标记,如:-1,并且大多数看到的图好像权值都是正数的(难道这有什么现实意义?)。总之,就算法思想而言,是允许负数的,但问到一样的问题,答:不允许负数。

题四:
在二叉树节点的先序序列、中序序列和后序序列中,所有叶子节点的先后顺序( )
正确答案: B 你的答案: A (错误)
都不相同
完全相同
先序和中序相同,而与后序不同
中序和后序相同,而与先序不同

题五:
便于插入和删除的容器是()
正确答案: A C D 你的答案: A B C (错误)
list
vector
map
set
解答:
1.list 底层数据结构为双向链表,支持快速增删
2.vector 底层数据结构为数组,支持快速随机访问
3.map 底层数据结构为红黑树,除了hashmap无序,其他实现结构有序,不重复
4.set 底层数据结构为红黑树,除了hashset无序,其他实现结构有序,不重复
map、set都是STL关联容器,支持快速增删

题六:
为避免运算过程中出现整型溢出可以考虑的办法有()
正确答案: B C 你的答案: A C D (错误)
将运算结果和可以表示的最大整数进行比较
检测符号位的变化
将计算结果减去加数看是否与另一加数相等
比较参数的长度、
解答:
选项1 : 运算结果进行比较的话,已经溢出导致结果变化,去比较也为时已晚。 所以不正确
选项2 : 检测符号为变化可以防止符号溢出,正确。
选项3 : a+b = c c - a != b 则c溢出 正确
选项4 : 参数长度 0000000000000000000000000 这个长度算溢出么 不正确

题七:
已知二维数组A[1: 4, 1: 6]采用列序为主序方式存储,每个元素占用4个存储单元,并且A[3,4]的存储地址为1234,元素A[1, 1]的存储地址是()
正确答案: A 你的答案: B (错误)
1178
1190
1278
1290
解答:
如果以任意的A[c1…d1,c2…d2]Ac1…d1,c2…d2可得:address(aij)=address(ac1c2)+((j−c2)(d1−c1+1)+(i−c1))e (每个元素占用空间ee个单位)
如题意:c1=c2=1,d1=4,d2=6
则address(a34)=a11+(3*4+2)*4

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值