数据结构实验:开放地址法哈希与二叉排序树操作
50 浏览量
更新于2024-09-09
收藏 20KB DOC 举报
本资源包含了三道关于数据结构的编程练习题目,针对不同的数据结构和算法进行实战操作。
1. **问题A - 开放定址法处理冲突的哈希表**:
这是一道关于哈希表的题目,要求使用哈希函数H(k) = (3k) % 11,以及开放定址法解决哈希冲突。具体规则是通过di = i * ((7k) % 10 + 1)来确定散列地址。你需要根据给定的0~10的散列地址空间和关键字序列构建哈希表,并计算查找每个关键字的实际比较次数,最后输出平均查找长度。例如,输入序列224153463013167的平均查找长度为2.125。
2. **问题B - 判定二叉排序树**:
本题考查二叉排序树的性质判断。你需要编写一个程序,输入二叉树的先序遍历序列,判断其是否为二叉排序树。如果是,输出"It is an BinaryOrderTree!",反之则输出"It is not an BinaryOrderTree!"。输入样例532004007600800的二叉树满足排序条件,输出结果为一个有序的中序遍历序列和确认信息。
3. **问题C - 二叉排序树的操作**:
这个题目涉及二叉排序树的常见操作:查找、删除和插入。以后续继线索链表作为存储结构,你需实现以下功能:
- 查找:找到所有大于a且小于b的键值,若不存在则输出"Not Found"。
- 删除:删除给定的键值,返回删除节点后的中序遍历结果,如果要删除的节点不存在,则输出原始二叉树的中序遍历。
- 插入:在删除的基础上,将新的键值插入到树中,同样考虑重复插入的情况,输出插入后的中序遍历。
这些题目综合考察了学生对哈希表的实现、二叉排序树的理解,以及基本的查找、删除和插入操作的编程能力。通过解决这些问题,学生可以加深对数据结构如哈希表和二叉树的理论知识与实际应用的理解,同时提高编程技能。
2014-06-29 上传
2011-06-30 上传
2008-09-01 上传
qq_34405898
- 粉丝: 9
- 资源: 22
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析