数据结构实践项目——查找(一)
来源:互联网 发布:java开发在太原多少钱 编辑:程序博客网 时间:2024/05/21 16:49
本文是[数据结构基础系列(8):查找]课程的第一组实践项目。
本文针对:
0801 查找问题导学
0802 线性表的顺序查找
0803 线性表的折半查找
0804 索引存储结构
0805 分块查找
0806 二叉排序树
0807 二叉排序树(续)
0808 平衡二叉树
纸上谈兵:“知原理”检验题目
[参考(部分)] [参考(1)]
1、对于A[0..10]有序表{12,18,24,35,47,50,62,83,90,115,134}
(1)用二分查找法查找 90时,需进行多少次查找可确定成功?
(2)当查找47时需进行多少次查找可确定成功?
(3)查找100时,需进行多少次查找才能确定不成功?
(4)求成功和不成功时的平均查找长度。
(5)构造对于这个序列的判定树,并再求成功和不成功时的平均查找长度。
2、现给出一个分块有序的数据表,每块中元素的个数s=8,其中的数据有:
22,4,23,11,20,2,15,13,30,45,26,34,29,35,26,36,55,98,56,74,61,90,80,96,127,158,116,114,128,113,115,102,184,211,243,188,187,218,195,210,279,307,492,452,408,361,421,399,856,523,704,703,697,535,534,739
(1)构造索引表,并画出索引存储结构;
(2)请描述查找61的过程,需要多少次比较;
(3)请描述查找739的过程,需要多少次比较;
(4)请描述查找200的过程,经过多少次比较后才能确定找不到。
3、将整数序列{43,52,75,24,10,38,67,55,63,60}中的数依次插入到一棵空的二叉排序树中,构造出相应的二叉排序树,要求用图形给出构造过程。
4、将整数序列{43,52,75,24,10,38,67,55,63,60}依次插入到一棵空的平衡二叉树中,试构造相应的平衡二叉树,要求用图形给出构造过程。
上机实践
【项目1 - 验证算法】
运行并本周视频中所讲过的算法,观察结果并领会算法。
1、认真阅读并验证折半查找算法。请用有序表{12,18,24,35,47,50,62,83,90,115,134}作为测试序列,分别对查找90、47、100进行测试。
[参考解答]
2、认真阅读并验证分块查找算法。请用22,4,23,11,20,2,15,13,30,45,26,34,29,35,26,36,55,98,56, 74,61,90,80,96,127,158,116,114,128,113,115,102,184,211,243,188,187,218,195,210,279,307,492,452,408,361,421,399,856,523,704,703,697,535,534,739(共n=56个数据,每块数据个数s=8)作为数据表,自行构造索引表,分别对查找61、739、200进行测试。
[参考解答]
3、认真阅读并验证二叉排序树相关算法。
(1)由整数序列{43,52,75,24,10,38,67,55,63,60}构造二叉排序树;
(2)输出用括号法表示的二叉排序树;
(3)用递归算法和非递归算法查找关键字55;
(4)分别删除43和55,输出删除后用括号法表示的二叉排序树。
[参考解答]
4、认真阅读并验证平衡二叉树相关算法。
(1)由整数序列{43,52,75,24,10,38,67,55,63,60}构造AVL树;
(2)输出用括号法表示的AVL树;
(3)查找关键字55;
(4)分别删除43和55,输出删除后用括号法表示的二叉排序树。
[参考解答]
【项目2 - 二叉树排序树中查找的路径】
设计一个算法,输出在二叉排序中查找时查找某个关键字经过的路径。
[参考解答]
【项目3 - 是否二叉排序树?】
设计一个算法,判断给定的二叉树是否是二叉排序树。
[参考解答]
- 数据结构实践项目——查找(一)
- 数据结构实践项目——查找(一)
- 数据结构实践项目——查找(二)
- 数据结构实践(一)—— 栈
- 数据结构(一)——查找
- 第四周项目三数据结构实践(一)——单链表:逆置
- [数据结构]查找(一)
- 第十四周(项目一)--数据结构-递归的折半查找
- 数据结构实践项目——顺序表
- 数据结构实践项目——链表
- 数据结构实践项目——栈
- 数据结构实践项目——队列
- 数据结构实践项目——串
- 数据结构实践项目——排序
- 数据结构实践项目——外部排序
- 数据结构实践项目——文件
- 数据结构之查找(一)——概论
- *第二周*数据结构实践项目一【交换】
- 确定当前正在执行耗占资源的SQL语句
- 【iOS】通过URL Scheme启动app(收集了常用的app的URL Scheme)
- 指令的执行方式
- Tiny Tom 的小世界
- Operation on Excel by Python
- 数据结构实践项目——查找(一)
- Android项目的启动一般过程,Activity的启动(加载)模式
- windows media player控件使用心得
- Oracle Database 10g / 11g RMAN备份的加密
- shareSDK社会化分享
- iOS8新特性 UIPresentationController(一)
- Kibana User Guide [4.2] »Settings
- java中抽象类和接口的区别
- ts流psi/si:学习笔记4