版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
栈特殊线性表班级:计算机11-1学号:姓名:成绩:_________实验十查找技术验证实验实验目的(1)掌握折半查找算法的基本思想;(2)掌握折半查找算法的实现方法;(3)掌握折半查找算法的时间性能;(4)掌握二叉排序树定义和特性;(5)掌握二叉排序树的建立方法;(6)实现基于二叉排序树的查找技术;(7)掌握二叉排序树的查找性能.实验内容(1)对给定的有序数组(假设长度为n),查找数组中与给定值k相等的元素。(2)①对给定的一组无序序列,建立一棵二叉排序树;②对建立的二叉排序树实现查找操作。设计与编码折半查找验证#include<iostream>usingnamespacestd;intBinSearch1(intr[],intn,intk){intlow=1; inthigh=n; intcount=0; while(low<=high) { intmid=(low+high)/2; count++; if(k<r[mid-1]) high=mid-1; else if(k>r[mid-1])low=mid+1; else { cout<<"比较次数是:"<<count; return0; } } return0;}intmain(){ intn,b,a[100];cout<<"*********************"<<endl; cout<<"请输入数组的个数:"; cin>>n; cout<<"请输入各个数的值:"; for(inti=0;i<n;i++) cin>>a[i]; cout<<"请输入你要查找的值:"; cin>>b; BinSearch1(a,n,b); cout<<endl;cout<<"*********************"<<endl; return0;}㈡二叉排序树的建立#include<iostream>usingnamespacestd;structBiNode{intdata;BiNode*lchild,*rchild;};classBiSortTree{public: voiddesplayTree(void);//显示这个树BiSortTree(inta[],intn);//建立查找集合a[n]的二叉排序树~BiSortTree(){};//析构函数,释放二叉排序树中所有结点,同二叉链表的析构函数voidInsertBST(BiNode*&root,BiNode*s);//在二叉排序树中插入一个结点sBiNode*searchTree(intk);//在树中查找一个值private: BiNode*root;//二叉排序树(即二叉链表)的根指针voidShowTree(BiNode*&root);//显示BiNode*SearchBST(BiNode*&root,intk);//查找值为k的结点};//二叉排序树插入算法voidBiSortTree::InsertBST(BiNode*&root,BiNode*s){ if(root==NULL) root=s; elseif(s->data<root->data) InsertBST(root->lchild,s); elseInsertBST(root->rchild,s);}//构造二叉排序树BiSortTree::BiSortTree(intr[],intn){root=NULL; for(inti=0;i<n;i++) { BiNode*s=newBiNode; s->data=r[i]; s->lchild=NULL; s->rchild=NULL; InsertBST(root,s); }}//二叉排序树查找算法BiNode*BiSortTree::searchTree(intk){ returnSearchBST(root,k);}BiNode*BiSortTree::SearchBST(BiNode*&root,intk){if(root==NULL)returnNULL;elseif(root->data==k){returnroot;}elseif(k<root->data){returnSearchBST(root->lchild,k);}else{ returnSearchBST(root->rchild,k);}}//显示二叉排序树voidBiSortTree::desplayTree(void){ ShowTree(root); cout<<endl;}voidBiSortTree::ShowTree(BiNode*&root){ if(root!=NULL){ ShowTree(root->lchild);cout<<root->data<<"\t";ShowTree(root->rchild);} else return;}voidmenu(){ cout<<"查找技术验证实验"<<endl;cout<<"*********************"<<endl; cout<<"1.中序遍历:"<<endl; cout<<"2.查找元素:"<<endl;cout<<"3.退出:"<<endl;cout<<"*********************"<<endl;}intmain(){ intn,b,k;inta[100]; cout<<"**********************************"<<endl;cout<<"请输入二叉排序树的元素的个数:";cin>>n;cout<<"请输入二叉排序树的各个元素的值:";for(inti=0;i<n;i++) { cin>>b;a[i]=b; } BiSortTreec(a,n); menu(); intflag=1; while(flag) { inti; cout<<"请输入你所需要的选项:"; cin>>i; switch(i) { case1: { cout<<"中序遍历为:"<<endl; c.desplayTree(); break; } case2: { cout<<"请输入二叉顺序树要查找的元素:"; cin>>k; if(c.searchTree(k)==NULL) { cout<<"你所要查找的元素无法在树中找到..."<<endl; } else { cout<<"你所要查找的元素已在查找到了..."<<endl; } break; } case3: { flag=0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 自考《幼儿园组织与管理》核心考核知识点清单(标注考核层次)
- 《机电一体化综合实训》电子课件(项目1-任务3-子任务1)
- 《解读招股说明书》课件
- 《水痘的防治》课件
- 《海洋与环境保护》课件
- 《油品添加剂概论》课件
- 《医疗行业模板》课件
- 《篮球自行车兵乓球》课件
- 《压力容器制造》课件
- 《现代电源技术》课件
- 新人教版一年级上册数学全册教案
- GEELY汽车服务顾问课件
- 学堂在线 现代生活美学-插花之道 章节测试答案
- 海尔卡萨帝洗衣机XQGH75-BF1206使用说明书
- 流浪乞讨培训课件
- 2025年道路运输企业主要负责人证考试题库及答案
- DZ/T 0265-2014遥感影像地图制作规范(1∶50 000/1∶250 000)
- 职业技术学校《建筑工程质量与安全管理》课程标准
- HGT21581-2012 自控安装图册
- 2024年度安徽省国家电网招聘之管理类题库附答案(基础题)
- 工艺技术部规划
评论
0/150
提交评论