数据结构实践项目——查找(二)
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树。
[参考解答]
本文针对:
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树。
[参考解答]
相关文章推荐
- C#数据结构之顺序表(SeqList)实例详解
- Redis中实现查找某个值的范围
- Lua教程(七):数据结构详解
- 批量文件查找替换功能的vbs脚本
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- WinForm实现按名称递归查找控件的方法
- C#数据结构之单链表(LinkList)实例详解
- 一个用vbs查找硬盘所有分区中的指定程序的代码
- 浅析Node.js查找字符串功能
- 数据结构之Treap详解
- C++二分法在数组中查找关键字的方法
- WinForm自定义函数FindControl实现按名称查找控件
- Shell脚本学习指南之查找与替换介绍
- php实现指定字符串中查找子字符串的方法
- C#查找对象在ArrayList中出现位置的方法
- C#数据结构之堆栈(Stack)实例详解
- C#数据结构之双向链表(DbLinkList)实例详解
- JavaScript数据结构和算法之图和图算法