数据结构实验三:BST动态查找表研讨.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构实验三:BST动态查找表研讨

HUNAN UNIVERSITY 课程实习报告 题 目: BST实现动态查找表 学生姓名: 学生学号: 专业班级: 指导老师: 李晓鸿 完成日期: 2015 11 21 一、需求分析 1、程序任务: 本程序是利用二叉查找树(BST)来实现;二叉树使用链式结构(二叉链表)实现,本程序要实现BST的构建,查找BST树中元素中两个功能。 2、输入形式: 输入整数n//BST的节点个数n。 输入n个数,其取值范围为(0, 216),对非法输入做处理。 3、输出形式: 若查找成功 整数m(次数)//返回成功和查找时比较的次数 若查找不成功 整数m(次数) //返回不成功和查找时比较的次数 若输入错误 “输入了无效的元素” 4、测试数据: ①.正常的输入 10 //BST的节点个数 50 1 3 2 78 65 100 59 43 18 //10个数据 输入:50 输出:查找成功,查找次数1 输入:1 输出:查找成功,查找次数6 输入:3 输出:查找成功,查找次数4 输入:100 输出:查找成功,查找次数5 输入:19 输出:查找失败 ②.只有左子树的情况 10 //BST的节点个数 100 1 12 35 43 95 54 82 78 93 //10个数据 输入:1 输出:查找成功,查找次数1 输入:12 输出:查找成功,查找次数6 输入:35 输出:查找成功,查找次数4 输入:95 输出:查找成功,查找次数5 输入:19 输出:查找失败 ③.错误的节点数输入 -2 //BST的节点个数 输出:错误的结点数输入 ④.错误的结点值的输入(字母) 10 //BST的结点个数 1 q 2 3 4 5 6 7 8 9 //10个数据 输出:无效的结点输入 ⑤.错误的结点值的输入(负数) 10 //BST的结点个数 1 -2 2 3 4 5 6 7 8 9 //10个数据 输出:无效的结点输入 二叉树中任意结点的值大于左节点的值,小于右节点的值,满足BST树的性质,所以用BST树来实现。 二.概要设计 1.抽象数据类型 二叉树中任意结点的值大于左节点的值,小于右节点的值,满足BST树的性质,同时本题在建树时需要大量的插入操作,运用链式结构比较方便,所以用链式结构的二叉树来满足BST树的构建。 2.ADT ①.二叉树的ADT: 数据对象D:D是BinNode类的数据元素的集合 数据关系R: 若D为空集,则称为空树 。 否则: (1) 在D中存在唯一的称为根的数据元素root; (2) 当n1时,其余结点可分为m (m0)个互不相交的有限集T1, T2, …, Tm,其中每一棵子集本身又是一棵符合本定义的树,称为根root的子树。 基本操作: bool InitBST(BST *b) //初始化二叉树 bool InitBSTNode(BSTNode * n)//初始化节点 bool clearBST(BSTNode * n) //销毁BST ②结点的ADT 数据对象:包含结点的值,同时包含结点的左右指针 数据关系:每个结点都有各自的值 若结点左右指针为空,则该节点称为叶子结点 基本操作: //结点的初始化 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树:输入节点数后,依次输入每个结点的值,将第一个结点作为根结点,插入一个数,这个数与根节点先比较,若小于则再与根结点的左子树相比较,若大于则与根节点的右子树相比较。比较时,若小于根结点且根结点的左子树为空,则这个数为根结点左子树的值,若小于根结点又大于根结点的左子树,则运用指针将根结点的左指针指向这个值得地址,这个值地

文档评论(0)

骨干 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档