顺序表二分查找递归算法
来源:互联网 发布:开淘宝店货源怎么弄 编辑:程序博客网 时间:2024/06/05 11:34
16 学年—17学年第 1学期数据结构实验任务书
专业名称: 实验学时: 2
课程名称: 数据结构 任课教师: 翟海霞
实验题目: 查找算法实现与分析
实验环境: Visual C++ 6.0
实验项目七:查找算法实现与分析
实验目的:1.掌握顺序表的查找方法,尤其是二分查找方法。
2.掌握二叉排序树的建立及查找过程,理解二叉排序树查找过程及插入和删除算法。
实验内容:1.编写程序实现有序表二分查找的递归算法;
2.建立二叉排序树并对其进行查找、遍历等有关操作。
3.选作:判断一棵二叉树是否为二叉排序树。
#include<iostream>#include<cstdlib>using namespace std;#define MAXSIZE 100#define OK 1;typedef struct{int key;//关键字域}ElemType;typedef struct{ElemType *R;int length;}SSTable;int InitList_SSTable(SSTable &L)//初始化 {L.R=(ElemType *)malloc(MAXSIZE *sizeof(ElemType));if (!L.R){cout<<"初始化错误";return 0;}L.length=0;return OK;}int Insert_SSTable(SSTable &L) {int j=1;for(int i=1;i<MAXSIZE;i++){L.R[i].key=j;L.length++;j++;}//return 1;}/*int Search_Bin(SSTable ST,int key) { // 在有序表ST中折半查找其关键字等于key的数据元素。若找到,则函数值为 // 该元素在表中的位置,否则为0 int low=1,high=ST.length;//置查找区间初值 int mid; while(low<=high) { mid=(low+high) / 2; if (key==ST.R[mid].key) return mid; //找到待查元素 else if (key<ST.R[mid].key) high = mid -1;//继续在前一子表进行查找 else low =mid +1; //继续在后一子表进行查找 }//while return 0;//表中不存在待查元素}// Search_Bin*/int BinSrch(SSTable L,int k,int low,int high)//在长为n的有序表中查找关键字k,若查找成功,返回k所在位置,查找失败返回0。{int mid;if(low<=high) //low和high分别是有序表的下界和上界 { mid=(low+high)/2; if(L.R[mid].key==k) return mid; else if(L.R[mid].key<k) return BinSrch(L,k,mid+1,high); else return BinSrch(L,k,low,mid-1); }else return 0;//查找失败。}//算法结束void Show_End(int result,int testkey){if(result==0)cout<<"未找到"<<testkey<<endl;elsecout<<"找到"<<testkey<<"位置为"<<result<<endl;return;}int main(){SSTable ST;InitList_SSTable(ST);Insert_SSTable(ST);int testkey1=7,testkey2=200;int result;result=BinSrch(ST,testkey1,1,99);Show_End(result,testkey1);result=BinSrch(ST,testkey2,1,99);Show_End(result,testkey2);}
0 0
- 顺序表二分查找递归算法
- (一)算法--查找算法顺序查找和二分查找(递归和非递归方式)
- 递归二分查找算法
- 【数据结构】查找算法:二分查找、顺序查找
- 查找算法:二分查找、顺序查找
- 二分查找算法递归实现
- 二分查找与递归算法
- JAVA二分递归查找算法
- 递归算法实现二分查找
- 【算法】二分查找递归实现
- 顺序查找算法和二分查找算法
- 二分查找算法 递归和非递归
- 二分查找递归与非递归算法
- 二分查找算法-递归-非递归实现
- 二分查找算法----递归&&非递归
- 算法-查找-线性表的查找(顺序查找,二分查找,分块查找)
- 顺序查找和二分查找算法
- php二分查找、顺序查找算法
- linux常用的基本命令01
- 万能糖果公司web应用——从服务器获取数据
- Android Yuv图像转jpg方法
- Shell学习笔记(9)
- 多标签学习求解策略及方法
- 顺序表二分查找递归算法
- 第010讲 div css
- JMS与MQ的关系
- DEVEXPRESS gridview手动添加行和删除行自定义序号、自定义文本
- 对ajax的js 封装
- Xcode cannot run using the selected device No supported iOS devices are available. Connect an iOS de
- 关于向arrayList集合插入对象报空指针异常
- 文本数据的机器学习自动分类方法(下)
- 从输入 URL 到页面加载完成的过程中都发生了什么事情?