您的位置:首页 > 理论基础 > 数据结构算法

数据结构实践项目——查找(二)

2015-11-30 15:07 281 查看
本文是[数据结构基础系列(8):查找]课程的第二组实践项目。

本文针对:

9. B-树

10. B+树

11. 哈希表——散列结构

12. 哈希表的运算

13. 拓展:谷歌搜索的数据结构

纸上谈兵:“知原理”检验题目

[参考解答]

1、给定序列{4, 9, 0, 1, 8, 6, 3, 5, 2, 7}

(1)创建对应的3阶B-树b,请画出构造过程

(2)从b中分别删除关键字为8和1的节点,画出其过程

2、建立序列{16, 74, 60, 43, 54, 90, 46, 31, 29, 88, 77}的哈希表,装填因子定为0.8,哈希函数为h(k)=key%p,p=11

(1)采用线性探查法解决冲突,请写出哈希表

(2)在上述哈希表中查找关键字为29的元素

(3)在上述哈希表中删除关键字为77的元素,再将其装入

(4)采用拉链法解决冲突,请重做(1)-(3)

课后上机实践

【项目1 - 验证算法】

运行并本周视频中所讲过的算法,观察结果并领会算法。

1、认真阅读并验证哈希表实施查找的相关算法,写程序建立序列{16, 74, 60, 43, 54, 90, 46, 31, 29, 88, 77}的哈希表,装填因子定为0.8,哈希函数为h(k)=key%p,p=11,采用线性探查法解决冲突。测试中:

(1)输出建立的哈希表;

(2)完成关键字为29的元素的查找;

(3)在上述哈希表中删除关键字为77的元素,再显示哈希表。

[参考解答]

【项目2 - 用哈希法组织关键字】

  已知一个关键字序列为if、while、for、case、do、break、else、struct、union、int、double、float、char、long、bool,共15个字符串,哈希函数H(key)为关键字的第一个字母在字母表中的序号,哈希表的表长为26。

  (1)若处理冲突的方法采用线性探测法,请设计算法,输出每个关键字对应的H(key),输出哈希表,并求成功情况下的平均查找长度。

  (2)若处理冲突的方法采用链地址法,请设计算法,输出哈希表,并计算成功情况和不成功情况下的平均查找长度。

[参考解答]

【项目3 - B-树的基本操作】(选看)

  实现B-树的基本操作。基于序列{4, 9, 0, 1, 8, 6, 3, 5, 2, 7}完成测试。

  (1)创建对应的3阶B-树b,用括号法输出b树。

  (2)从b中分别删除关键字为8和1的节点,用括号法输出删除节点后的b树。

[参考解答]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构 查找