数据结构课程实验报告实验6

数据结构课程实验报告实验6

ID:35250838

大小:288.00 KB

页数:5页

时间:2019-03-22

数据结构课程实验报告实验6_第1页
数据结构课程实验报告实验6_第2页
数据结构课程实验报告实验6_第3页
数据结构课程实验报告实验6_第4页
数据结构课程实验报告实验6_第5页
资源描述:

《数据结构课程实验报告实验6》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、数据结构课程实验指导书HUNANUNIVERSITY课程实习报告题目:BST学生姓名康小雪学生学号20090810310专业班级计科三班指导老师李晓鸿完成日期2010-12-11-5-数据结构课程实验指导书一、需求分析1.该程序可以从通过从键盘输入结点的个数和结点信息(数字)来建立一个新的二叉树,输入的数字可以不按大小顺序,但大小不能重复;2.还可以输入新的数据,计算机可通过在二叉树中比较查找是否有该数据,若有,则计算机返回“查找成功”及查找时比较的次数,若没有则返回“查找不成功”及查找时比较的次数,

2、由此形成一个动态查找表输入输出举例输入:8//BST的节点个数34,76,45,18,26,54,92,65//8个数据45//查找45输出:查找成功3//返回成功和查找时比较的次数34//查找34输出:查找成功1//返回成功和查找时比较的次数100//查找100输出:查找不成功3//返回成功和查找时比较的次数二、概要设计抽象数据类型二叉树ADTBiTree{数据对象D:D是具有相同特性的数据元素集合数据关系R:若D为空集,则R为空集,则称BinaryTree为空二叉树;若D不为空集,否则R={H},

3、H是如下二元关系:(1)在D中存在唯一的称为根的数据元素root,它在关系H下无前驱;(2)若D-{root}≠空集,则存在D-{root}的一个划分{D1,Dr}且D1∩Dr=空集;(3)若D1≠空集,则D1中存在唯一元素x1,∈H,且存在D1shangdeguanxiH1=H;ruoDr≠空集,则Dr中存在唯一的元素,xr,∈H,且存在Dr上的关系Hr∈H;H={,,H1,Hr};(4)(D1,{H1})是一棵符合本定义的二叉

4、树,称为根的左子树,(Dr,{Hr})是一棵符合本定义的二叉树,称为根的右子树基本操作P:BoolBST::BSTSearch(intkey,int&count)//在BST中查找元素boolBST::BSTInsert(intkey)//在BST中插入一个新的元素boolBST::BSTSearchHelp(BSTNode*root,intkey,int&count)//查找的辅助函数,判断两个关键记录是否相等,若相等则返回,若大于则在右子树中查找,若小于就在左子树中查找boolBST::BSTIn

5、sertHelp(BSTNode*root,intkey,BSTNode*rootParent)//插入的辅助函数,在当前节点的左或右子树插入一个节点voidBST::BSTDestoryHelp(BSTNode*root)//销毁二叉树-5-数据结构课程实验指导书}ADTTree算法的基本思想先输入元素,构建一棵二叉树,再输入需要查找的元素,在二叉树中查找是否存在该元素。程序的流程程序由二个模块组成:(1)输入建立模块:在主函数中输入结点数和结点信息并建立相应的二叉树(2)输入查找模块:输入需要查找

6、的数据,并在二叉树中查找最后返回查找信息三、详细设计物理数据类型二叉树classBST//二叉树{private:classBSTNode{//二叉树节点BSTNode*leftChildPtr;//左孩子BSTNode*rightChildPtr;//右孩子intvalue;//值BSTNode*root;//根节点};算法的具体步骤//基本操作的函数原型BST::BST(){root=0;}//初始化根节点为0BST::~BST(){BSTDestoryHelp(root);}//析构函数销毁二叉

7、树boolBST::BSTSearch(intkey,int&count){returnBSTSearchHelp(root,key,count);}//在二叉树中查找boolBST::BSTInsert(intkey)//插入新元素{if(root==0){root=newBSTNode(key,0,0);returntrue;}returnBSTInsertHelp(root,key,0);}boolBST::BSTSearchHelp(BSTNode*root,intkey,int&count)

8、//查找{if(root==0)returnfalse;-5-数据结构课程实验指导书if(key==root->value){count++;returntrue;}elseif(keyvalue){count++;returnBSTSearchHelp(root->leftChildPtr,key,count);}else{count++;returnBSTSearchHelp(root->rightChildPtr,key,count)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。