没有合适的资源?快使用搜索试试~ 我知道了~
中南大学数据结构与算法第9章查找课后作业答案.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 67 浏览量
2021-12-08
10:32:51
上传
评论
收藏 334KB DOCX 举报
温馨提示
试读
21页
。。。
资源推荐
资源详情
资源评论
第 9 章查找习题练习答案
1.对含有 n 个互不相同元素的集合,同时找最大元和最小元至少需进行多少次比较
答:
设变量 max 和 min 用于存放最大元和最小元(的位置),第一次取两个元素进行比较,
大的放入 max,小的放入 min。从第 2 次开始,每次取一个元素先和 max 比较,如果大于 max
则以它替换 max,并结束本次比较;若小于max 则再与 min 相比较,在最好的情况下,一路
比较下去都不用和 min 相比较,所以这种情况下,至少要进行 n-1 次比较就能找到最大元和
最小元。
2.若对具有 n 个元素的有序的顺序表和无序的顺序表分别进行顺序查找,试在下述两种情况下分别讨
论两者在等概率时的平均查找长度:
(1)查找不成功,即表中无关键字等于给定值 K 的记录;
(2)查找成功,即表中有关键字等于给定值 K 的记录。
答:
查找不成功时,需进行 n+1 次比较才能确定查找失败。因此平均查找长度为 n+1,这时有序表和
无序表是一样的。
查找成功时,平均查找长度为(n+1)/2,有序表和无序表也是一样的。因为顺序查找与表的初始序
列状态无关。
3.画出对长度为 18 的有序的顺序表进行二分查找的判定树,并指出在等概率时查找成功的平均查找
长度,以及查找失败时所需的最多的关键字比较次数。
答:
1
等概率情况下,查找成功的平均查找长度为:
ASL=(1+2*2+3*4+4*8+5*3)/18=
查找失败时,最多的关键字比较次树不超过判定树的深度,此处为 5.
4.为什么有序的单链表不能进行折半查找?
答:
因为链表无法进行随机访问,如果要访问链表的中间结点,就必须先从头结点开始进行依次访问,
这就要浪费很多时间,还不如进行顺序查找,而且,用链存储结构将无法判定二分的过程是否结束,因此
无法用链表实现二分查找。
5.设有序表为(a,b,c,e,f,g,i,j,k,p,q),请分别画出对给定值 b,g 和 n 进行折半查找的过程。
解:
(1)查找 b 的过程如下(其中方括号表示当前查找区间,圆括号表示当前比较的关键字)
2
下标:
1
2
3
4
5
6
7
8
i
9 10 11 12 13
第一次比较: [a
b
c
d
e
f
(g)
h
h
i
i
j
k
p
q]
第二次比较: [a b (c) d
e
e
f]
f
g
h
j
k
p
q
第三次比较: [a (b)]c
d
g
j
k
p
q
经过三次比较,查找成功。
(2)g 的查找过程如下:
[a b c d e f (g) h i j k p q]
一次比较成功。
(3)n 的查找过程如下:
下标:
1
2
3
4
5
6
7
8
i
9 10 11 12 13
第一次比较: [a
b
c
d
e
f (g)
h
j
k
p
p
q]
第二次比较:
a
a
a
b
b
b
c
c
c
d
d
d
e
e
e
f
f
f
g
g
g
[h i (j) k
q]
第三次比较:
第四次比较:
h
h
i
i
j [k (p) q]
j [k] p
q]
经过四次比较,查找失败。
3
6.将(for, case, while, class, protected, virtual, public, private, do, template, const ,if,
int)中的关键字依次插入初态为空的二叉排序树中,请画出所得到的树 T。然后画出删去 for 之后的二叉
排序树 T',若再将 for 插入 T'中得到的二叉排序树 T''是否与 T 相同最后给出 T"的先序、中序和后序序列。
答:
二叉排序树 T 如下图:
删去 for 后的二叉排序树如下图:
再插入结点 for 后的二叉排序树 T":
4
二叉排序树 T"与 T 不同
T"的先序序列是:do case class const while protected private if for int virtual public
template
T"的中序序列是:case class const do for if int private protected public template virtual
while
T"的后序序列是:const class case for int if private template public virtual protected
while do
7.对给定的关键字集合,以不同的次序插入初始为空的树中,是否有可能得到同一棵二叉排序树?
答:
有可能。如有两个序列:3,1,2,4 和 3,4,1,2,它们插入空树所得的二叉排序树是相同
的。
么?
8.将二叉排序树 T 的先序序列中的关键字依次插入一空树中,所得和二叉排序树 T'与 T 否相同为什
5
剩余20页未读,继续阅读
资源评论
苦茶子12138
- 粉丝: 1w+
- 资源: 6万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功