- 11
- 0
- 约5.42千字
- 约 18页
- 2016-06-05 发布于湖北
- 举报
HUNAN UNIVERSITY
课程实习报告
题 目: BST实现动态查找表
学生姓名:
学生学号:
专业班级:
指导老师: 李晓鸿
完成日期: 2015 11 21
一、需求分析
1、程序任务:
本程序是利用二叉查找树(BST)来实现;二叉树使用链式结构(二叉链表)实现,本程序要实现BST的构建,查找BST树中元素中两个功能。
2、输入形式:
输入整数n//BST的节点个数n。
输入n个数,其取值范围为(0, 216),对非法输入做处理。
3、输出形式:
若查找成功 整数m(次数)//返回成功和查找时比较的次数
若查找不成功 整数m(次数) //返回不成功和查找时比较的次数
若输入错误 “输入了无效的元素”
4、测试数据:
①.正常的输入
10 //BST的节点个数
//10个数据
50
输出:查找成功,查找次数1
输入:1
输出:查找成功,查找次数6
输入:3
输出:查找成功,查找次数4
输入:100
输出:查找成功,查找次数5
输入:19
输出:查找失败
②.只有左子树的情况
10 //BST的节点个数
//10个数据
,查找次数1
输入:12
输出:查找成功,查找次数6
输入:35
输出:查找成功,查找次数4
输入:95
输出:查找成功,查找次数5
输入:19
输出:查找失败
③.错误的节点数输入
-2 //BST的节点个数
10 //BST的个数
//10个数据
//结点的初始化
BinNodePtr(){lc=rc=NULL}
BinNodePtr(Elem e,BinNodePtr* l=NULL;BinNodePtr* r=NULL)
{it=e;lc=l;rc=r;}
//判断是否是叶子结点
bool isleaf(){return(lc==NULL)(rc==NULL)};
3.算法的基本思想
构建BST树:输入节点数后,依次输入每个结点的值,将第一个结点作为根结点,插入一个数,这个数与根节点先比较,若小于则再与根结点的左子树相比较,若大于则与根节点的右子树相比较。比较时,若小于根结点且根结点的左子树为空,则这个数为根结点左子树的值,若小于根结点又大于根结点的左子树,则运用指针将根结点的左指针指向这个值得地址,这个值地址的指针再指向原来根结点左子树;大于的情况同理。
查找:设置一个计数器,每查找一次则加一。从根节点开始,在BST中检索值K。如果根节点存储的值为K,则检索结束。如果不是,必须检索数的更深的一层。BST的效率在于只需检索两棵子树之一。如果K小于根节点的值,则只需检索左子树;若果K结点大于根结点的值,则检索右子树。这个过程一直持续到K被知道或者遇到一个叶子结点为止。如果叶子结点仍没有发现K,那么K就不在BST中。
4.程序的流程
程序由三个模块组成:
输入模块:输入结点数目初始数据,构建二叉查找树
查找模块:判断需要查找的值是否在该BST中
输出模块:输出查找成功与否,并输出比较的次数
详细设计
1.物理数据类型
动态查找表的数据为小数或整数,用float类型保存。
树的ADT具体实现
//初始化二叉树
bool InitBST(BST *b) {
b-root = NULL;
return true;
}
//销毁BST
bool clearBST(BSTNode * n)
{
if (n)
return false;
if (n-lchild)
clearBST(n-lchild);
if (n-rchild)
clearBST(n-rchild);
free(n);
return true;
}
//初始化节点
bool InitBSTNode(BSTNode * n)
{
n = (BSTNode *)malloc(sizeof(BSTNode));
n-lchild = NULL;
n-rchild = NULL;
return true;
}
结点的ADT具体实现
BinNodePtr(){lc=rc=NULL}//结点的初始化
BinNodePtr(Elem e,BinNod
您可能关注的文档
最近下载
- 个人简历表格填写2021简历模板.docx VIP
- 针灸推拿学习题库(附答案).docx VIP
- 毕业设计(论文)-五边形凸台零件铣削加工.doc VIP
- 2026届山东省淄博市高三上学期期末考试(摸底质量检测)历史试题(含答案).docx VIP
- 常见词组固定搭配.pdf VIP
- 2023年山东泰安中考地理试题及答案.pdf VIP
- 胎动管理专家共识最新2025.pptx
- (小学综合实践课标复习题全.doc VIP
- 0—3岁婴幼儿心理发展与教育 第四章 0-3岁婴幼儿心理发展与教育 课件PPT.pptx VIP
- 0—3岁婴幼儿心理发展与教育 第三章 0-3岁婴幼儿心理发展与教育 课件PPT.pptx VIP
原创力文档

文档评论(0)