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

简介: 本文是[数据结构基础系列(8):查找]课程的第二组实践项目。本文针对: 9. B-树 10. B+树 11. 哈希表——散列结构 12. 哈希表的运算 13. 拓展:谷歌搜索的数据结构纸上谈兵:“知原理”检验题目[参考解答] 1、给定序列{4, 9, 0, 1, 8, 6, 3, 5, 2, 7} (1)创建对应的3阶B-树b,请画出构造过

本文是[数据结构基础系列(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树。
[参考解答]

目录
相关文章
|
2月前
|
存储 算法 C语言
通义灵码在考研C语言和数据结构中的应用实践 1-5
通义灵码在考研C语言和数据结构中的应用实践,体验通义灵码的强大思路。《趣学C语言和数据结构100例》精选了五个经典问题及其解决方案,包括求最大公约数和最小公倍数、统计字符类型、求特殊数列和、计算阶乘和双阶乘、以及求斐波那契数列的前20项和。通过这些实例,帮助读者掌握C语言的基本语法和常用算法,提升编程能力。
90 4
|
2月前
|
存储
探索数据结构:单链表的实践和应用
探索数据结构:单链表的实践和应用
|
7月前
|
存储
【数据结构】----顺序表项目-通讯录
【数据结构】----顺序表项目-通讯录
33 0
|
7月前
|
机器学习/深度学习 算法
数据结构小实践
【4月更文挑战第13天】数据结构小实践
64 1
|
7月前
|
Web App开发 存储 网络协议
C/C++ 数据结构设计与应用(四):C++数据压缩与传输:从理论到实践的全景解析
C/C++ 数据结构设计与应用(四):C++数据压缩与传输:从理论到实践的全景解析
393 3
|
7月前
|
存储 算法 C语言
C语言进阶:顺序表(数据结构基础) (以通讯录项目为代码练习)
C语言进阶:顺序表(数据结构基础) (以通讯录项目为代码练习)
|
7月前
|
机器学习/深度学习 存储 人工智能
数据结构与算法设计:深度解析与实践
数据结构与算法设计:深度解析与实践
161 0
|
7月前
|
存储 缓存 算法
【数据结构查找算法篇】----散列查找【实战项目】
【数据结构查找算法篇】----散列查找【实战项目】
106 10
|
7月前
|
存储 算法 Java
【数据结构查找算法篇】----线性查找【实战项目】
【数据结构查找算法篇】----线性查找【实战项目】
96 5