版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
试验室(中心):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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国农业大学猪病研究创新团队博士后招聘笔试备考试题及答案解析
- 2026上海市农业生物基因中心招聘10人(第一批)笔试备考题库及答案解析
- 2026年合肥一六八新店花园学校小学部教师招聘笔试备考题库及答案解析
- 2026云南昆明高新技术产业开发区管理委员会选聘国有企业高级管理人员4人笔试备考试题及答案解析
- 2026广东能源集团财务有限公司社会招聘1人笔试备考试题及答案解析
- 2026年兰州现代职业学院单招综合素质考试备考试题含详细答案解析
- 成都市沙河中学校(成都市树德实验中学沙河校区)-2025-2026学年度员额教师招聘笔试备考试题及答案解析
- 2026年郑州澍青医学高等专科学校高职单招职业适应性测试模拟试题及答案详细解析
- 2026广东河源市连平县招聘临聘教师16人笔试备考题库及答案解析
- 2026年中国电子科技集团公司第四十三研究所招聘笔试备考题库及答案解析
- 2026年马年德育实践作业(图文版)
- 2026春译林8下单词表【Unit1-8】(可编辑版)
- 2025至2030生物燃料酶行业调研及市场前景预测评估报告
- 2025中国即饮咖啡市场趋势报告-欧睿咨询
- 护士心理护理操作规程
- 跨境电商案例分析
- 聚丙烯酰胺安全培训课件
- 广州某国际机场航班延误旅客服务与应急处理办法
- 共享单车项目2025年经济效益与社会效益综合评价方案
- 阶梯式早期活动在ICU机械通气患者中的应用课件
- 上海市海绵城市建设技术标准图集DBJT08-128-2019 2019沪L003、2019沪S701
评论
0/150
提交评论