第8章 查寻 习题参考谜底.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
习题八 参考答案 一、选择题 1.对线性表进行二分查找时,要求线性表必须( B ) A.以顺序方式存储 B.以顺序方式存储,且结点按关键字值有序排列 C.以链接方式存储 D.以链接方式存储,且结点按关键字值有序排列 2. 用二分查找法查找具有n个结点的顺序表时,查找每个结点的平均比较次数是( D ) A.O(n2) B.O(nlog2n) C.O(n) D.O(log2n) 3. 对长度为4的顺序表进行查找,若查找第一个记录的概率为1/24, 查找第二个记录的概率为1/6, 查找第三个记录的概率为2/3, 查找第四个记录的概率为1/8,则查找任意一个记录的平均查找长度为( A ) A.23/8 B.20/8 C.17/8 D.14/8 4. 若有一个长度为64的有序表,现用二分查找方法查找某一记录,则查找不成功,最多需要比较( B )次。 A.9 B.7 C.5 D.3 5. 当采用分块查找时,数据的组织方式为( C ) A.数据必须有序 B.数据不必有序 C.数据分成若干块,每块内数据不必有序,但块间必须有序 D.数据分成若干块,每块内数据必须有序,但块间不必有序 6. 一棵深度为k的平衡二叉树,其每个非终端结点的平衡因子均为0,则该平衡二叉树共有( C )个结点。 A.2k-1-1 B.2k-1+1 C.2k-1 D.2k+1 7. 具有5层结点的平衡二叉树至少有( B )个结点。 A.10 B.12 C.15 D.17 8. 若结点的存储地址与其关键字之间存在某种映射关系,则称这种存储结构为( D ) A.顺序存储结构 B.链式存储结构 C.索引存储结构 D.散列存储结构 9. 以下有关m阶B-树的叙述中,错误的是( B )。 A.根结点至多有m棵子树 B.每个结点至少有棵子树 C.所有叶子结点都在同一层上 D.每个结点至多有m-1个关键字 10.哈希表的地址区间为0~17,哈希函数为h(key)=K%17。采用线性探测法处理冲突,并将关键字序列{26,25,72,38,8,18,59}依次存储到哈希表中,则在哈希表中查找元素59需要搜索的次数为( C )。 A.2 B.3 C.4 D.5 二、填空题 1.动态查找表和静态查找表的主要区别在于 动态查找表有插入和删除操作 。 2.假定待查找记录个数为n,则在等概率的情况下,顺序查找在查找成功情况下的平均查找长度为 (n+1)/2 ;在查找失败情况下的平均查找长度为 n+1 。 3. 对线性表进行二分查找时,要求线性表必须以顺序方式存储,且数据有序 。 4. 分块查找分为两个阶段,分别是确定待查元素所在的块 和 在块内查找待查的元素。 5.哈希法存储中,冲突指的是不同关键字值对应到相同的存储地址。 6. 一棵二叉排序树用中序遍历输出的信息是 递增 序列。 7.深度为4的平衡二叉树中至少有 7 个结点,至多有 15 个结点。 8.引入B-树的根本原因是减少查找一个元素需要访问的外存的次数。 9.哈希法存储的基本思想是根据 关键字 来决定存储地址。 10.设计一个好的哈希函数,其函数值应该以 同等 概率取其值域的每个值。 三、算法设计题 1.基于SeqList类,设计带监视哨的顺序查找算法,要求把监视哨设置在n号单元。 参考答案: public int seqSearchWithGuard(Comparable key) { int i = length() - 1; getRecord()[i].setKey(key); //哨兵设置在第n号单元 i = 0; while ((getRecord()[i].getKey()).compareTo(key) != 0) { i++; } if (i length() - 1) { return i; } else { return -1; } } 2.

文档评论(0)

zhuliyan1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档