版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
试验室(中心):B01-407 试验完毕时间:年5月20日应用线性构造、树形构造实现查找。1)有序表的二分查找;2)二叉排序树的查找。1)建立有序表,然后进行二分查找;2)建立二叉排序树,然后查找。设备:计算机;运行环境:visualC++6.0;实现思绪:首先,是有序表的书写,是在次序表的基础上用有序插入控制数据的有序输入,从而建立有序表,为背面的二分法查找数据做准备。次序表的数据组员中,用*element来存储数据,MaxSize表达最大存储空间,length表达目前存储长度;在组员函数中,voidInsert(T&x)用来有序插入数据建立有序表,每次插入数据前都要与已经有数据进行比较大小,从而确定插入位置,同步voidSearch(T&x)用来二分法查找数据,先定义两个起始位置和末位置的变量以及一种中间位置的变量,每次用要查找的数与中间位置的数据进行比较,假如小则末位置为中间位置加一,反之起始位置为中间位置减一;然后,是二分排序树的书写,有二叉树结点BinaryTreeNode,包括数据域data,左子树指针leftChild以及右子树指针rightChild;在BinarySearchTree中用voidInsert(T&x,BinaryTreeNode<T>*&ptr)函数进行建立二叉树,比根数据小的存在左子树,比根大的存在右子树,用BinaryTreeNode<T>*Find(Tx,BinaryTreeNode<T>*ptr)进行搜索查找,用递归算法进行实现,要查找的数比根数小,往左子树递归,反之,往右子树递归。最终,用菜单进行实现。编译环节:在写类的时候,逐一函数进行测试。SeqList(intMaxL}voidSearch(T&x);//二分法搜索函数template<classT>{element=newT[Max}boolSeqList<T>::Find(inti,T{returntrue;}{{cout<<"查找成功!"<<endl;}if(x!=element[mid]&&(mid==lowllmcout<<"查找失败"<<endl;}}for(intj=length;j>i;j-)//有序插入}BinaryTreeNode<T>*leftChild,*rig//BinaryTreeNode(Td):data(d),leftChild(NULL),rightChild(NULL{}//构造函数BinaryTreeNode(Td=0,BinaryTreeNode*{}Tstopvalue;//数据输入停止标志,用于输入voidInsert(T&x,BinaryTreeNode<T>*&ptr);/BinaryTreeNode<T>*Find(Tx,BinaryTreeNode<T>*{{returnFind(x,root)!=NULL;}//查找voidTraverse(ostream&out)BinaryTreeNode<T>*BinarySearchTree<T>:Find(Tx,BinaryTreeNode<T>*ptr)//二叉排序树的递归查找算法{cout<<"搜索失败!"<<endl;returnNULL;//搜索失败}returnFind(x,ptr->leftChild);//在左子数查找returnFind(x,ptr->rightChild);//在右子数查找{cout<<"搜索成功!"<<endl;returnptr;/相等,搜索成功}voidBinarySearchTree<T>::Insert(T&x,BinaryTreeNode<{if(ptr==NULL)//新节点作为叶子结点插入{ptr=newBinaryTreeNod}//我不清晰和根相等的关键字往哪里存Insert(x,ptr->rightChild);//不小于根的关键字,向右子数插入}voidBinarySearchTree<T>::Remove(constT&x,BinaryTreeNode<T>*&ptr)Remove(x,ptr->rightCelseif(ptr->leftChild!=NULL&&ptr->rightChild!=NULL)temp=Min(ptr->rightChRemove(ptr->data,ptr->rightvoidBinarySearchTree<T>::Traverse(ostream&out,BinaryTreeNode<T>*subTree)//私有函数:搜索并输出根为subTree的二叉树out<<subTree->data<<';//输出subTree的数值}}ostream&operator<<(ostream&out,BinarySearch{Tree.Traverse(Tree.rvoidBillsOfSearch(SeqList<T>&ob1,BinarySearchTrvoidInputNumber(SeqList<T>&ob1,BinarySearchTreevoidOutputNumber(SeqList<T>&ob1,BinarySearcvoidSearchNumber(SeqList<T>&ob1,BinarySearvoidMenu<T>::BillsOfSearch(SeqList<T>&ob1,BinarySearchTree<T>&o{cout<<"\n=cout<<"=====cout<<"~~~~~~~1、输入数据!~~~~~~~~~\n";cout<<"~~~~~~~2、输出数据!~~~~~~~~~1n";cout<<"~~~~~~~3、搜索数据!~~~~~~~~~\n";cout<<"~~~~~~~0、退出!~~~~~~~~~\n";cout<<"请输入你的选择(输入编号即可):";cin>>choice;case1:InputNumber(obl,ocase2:OutputNumber(ob1,case3:SearchNumber(ob1,ob2);break;default:cout<<"输入有误!";break;}voidMenu<T>::InputNumber(SeqList<T>&ob1,BinarySearchTree<T>&ob2){{cout<<"0与否为要输入的数?(1、是;0、不是。)";cin>>choose;{case1:obl.Insert(number);ob2.Insert(numdefault:cout<<"输入选择有误,请重新选择!"<<endl;break;}{ob1.Insert(number);//建立有序表ob2.Insert(number);//建立二叉搜索树}cout<<"输入选择有误,请重新选择!"<<endl;}ob1.Insert(number);//建立有序表ob2.Insert(number);//建立二叉搜索树}/*for(intj=0;j<ob1.LengthO;j++){numberl=ob1.GetNumber}voidMenu<T>:OutputNumber(SeqList<T>&obl,BinarySearchTree<T>&ob2){{cout<<"I~~~~~~1、次序表输出!~~cout<<"|~~~~~~2、二叉搜索树输出!~~~|\n";cout<<"I~~~~~~0、退出!~~~~~~~~~~|\n";default:cout<<"输入有误!";break;voidMenu<T>::SearchNumber(SeqList<T>&ob1,BinarySearch{{cout<<"\n============cout<<"l~~~~~~~1、次序表的二分法搜索!~cout<<"l~~~~~~~2、二叉搜索树搜索!~~~~~~~|\n";cout<<"I~~~~~~~0、退出!~~~~~~~~~~~~~|\n";default:cout<<"输入有误!";break;}主函数:BinarySearchTree<doub}(二)、运行成果:主菜单:输入数据:输入数据:搜索选项是否为要输入的数?1、是;a、不是。)日搜索选项 2、输出数据!~~~~请输入你的选择(输入编号即可),2 请输入你的选择(输入编号即可),2-出! !输出选项 搜索数据:~~~~~~~2、输出数据!~~~~~~~~~~~~~~~~~~~~~~~~~~g退出~~~~~~~~~~请输入你的选择(输入编号即可):3、顺序表的二分法搜索!~~~、顺序表的二分法搜索!~~~2、二又搜索树搜索!~~~~~~~=-=- 请输入你的选择(输入编号即可):aPreamanykeytoco在这次试验中,我收获了诸多,对次序表的认识也加深了某些,基于数组的存储构造还是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度高端钟表定制加工出口合同3篇
- 肝脓肿病因介绍
- 《数据的代表复习》课件
- 六年级上册英语期末测试卷(3)小学英语教学教材课件
- 牙龈肿痛病因介绍
- 滑石尘肺病因介绍
- 淋巴丝虫病病因介绍
- 开题报告:中国建设世界一流大学政策变迁:特征、逻辑与优化策略
- 《数控机床液压系统》课件
- 开题报告:婴幼儿基于先占原则的所有权推理:基于行为与眼动双指标的研究
- 2024年共青团入团积极分子考试题库及答案
- 《CIGS太阳电池》课件
- 人教版道德与法治一年级上册02《我向国旗敬个礼》课件
- xxxx学校教学楼(技术标)
- 膳食营养课件教学课件
- 2024秋期国家开放大学专科《高等数学基础》一平台在线形考(形考任务一至四)试题及答案
- 《互联网影响新体验》课件2024--2025学年人教版(2024)初中信息科技七年级全一册
- 国开(内蒙古)2024年《创新创业教育基础》形考任务1-3终考任务答案
- GB/T 18029.8-2024轮椅车第8部分:静态强度、冲击强度及疲劳强度的要求和测试方法
- 2024入团知识题库(含答案)
- 电梯日管控、周排查、月调度内容表格
评论
0/150
提交评论