收藏 分销(赏)

数据结构实验五---查找的实现.doc

上传人:天**** 文档编号:4542584 上传时间:2024-09-27 格式:DOC 页数:5 大小:35KB 下载积分:6 金币
下载 相关 举报
数据结构实验五---查找的实现.doc_第1页
第1页 / 共5页
数据结构实验五---查找的实现.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
实验五 查找得实现 一、 实验内容   1、建立一个线性表,对表中数据元素存放得先后次序没有任何要求.输入待查数据元素得关键字进行查找。为了简化算法,数据元素只含一个整型关键字字段,数据元素得其余数据部分忽略不考虑.建议采用前哨得作用,以提高查找效率。 2、查找表得存储结构为有序表,输入待查数据元素得关键字利用折半查找方法进行查找.此程序中要求对整型量关键字数据得输入按从小到大排序输入。 二、 源代码与执行结果 1、 #include〈iostream> using namespace std ; #define MAX 100 #define KeyType int typedef struct { KeyType key ; }DataType ; typedef struct { ﻩDataType elem[MAX] ; int length ; }SeqTable , *PSeqTable ; PSeqTable Init_SeqTable() { ﻩPSeqTable p = (PSeqTable)malloc(sizeof(SeqTable)) ; ﻩif(p != NULL) { p->length = 0 ; ﻩreturn p ; } ﻩelse { ﻩ cout〈<"Out of space!”〈〈endl ; ﻩ return NULL ; ﻩ} } int insert_SeqTable(PSeqTable p ,KeyType x) { if(p->length 〉= MAX) ﻩ{ ﻩcout〈<”overflow!"<<endl ; ﻩreturn 0 ; ﻩ} p—>elem[p—>length]、key = x ; p-〉length ++ ; return 1 ; } int SeqSearch(SeqTable s ,KeyType k) { ﻩint n , i = 0 ; ﻩn = s、length ; s、elem[n]、key = k ; ﻩwhile(s、elem[i]、key != k) ﻩﻩi ++ ; ﻩif(i == n) return —1 ; else ﻩﻩreturn i ; } void main() { PSeqTable p ; int i , n ; ﻩKeyType a ; p = Init_SeqTable() ; ﻩcout<〈"请输入数据个数:" ; cin>>n ; cout〈<"请输入数据:”<〈endl ; for(i = 0 ; i < n ; i ++) ﻩ{ ﻩcin〉>a ; ﻩ insert_SeqTable(p , a) ; } ﻩcout<<"请输入要查找得数据,输入32767结束:” ; cin〉〉a ; ﻩwhile(a != 32767) ﻩ{ i =SeqSearch(*p , a) ; if(i == -1) { ﻩﻩﻩcout<<”无此数据!请重新输入:"<〈endl ; ﻩ ﻩcin>>a ; ﻩ} ﻩﻩelse ﻩﻩ{ ﻩ cout<〈"该数据得位置就是:"〈<i+1<<endl ; ﻩ cout〈<"请输入要查找得数据:" ; ﻩ ﻩcin〉〉a ; ﻩ } ﻩ} } 2、 #include<iostream> using namespace std ; #define MAX 100 #define KeyType int typedef struct { KeyType key ; }DataType ; typedef struct { ﻩDataType elem[MAX] ; ﻩint length ; }BinTable , *PBinTable ; PBinTable Init_BinTable() { ﻩPBinTable p = (PBinTable)malloc(sizeof(BinTable)) ; if(p != NULL) { p->length = 0 ; ﻩﻩreturn p ; ﻩ} else ﻩ{ ﻩcout〈<"Out of space!"〈<endl ; return NULL ; ﻩ} } int insert_BinTable(PBinTable p ,KeyType x) { if(p—〉length >= MAX) { ﻩ cout<<"overflow!”<〈endl ; ﻩ return 0 ; ﻩ} ﻩp-〉elem[p—>length]、key = x ; p->length ++ ; ﻩreturn 1 ; } int BinSearch(BinTable s ,KeyType k) { ﻩint low , mid , high ; ﻩlow = 0 ; high = s、length-1 ; while(low <= high) { ﻩﻩmid = (low+high)/2 ; ﻩ if(s、elem[mid]、key == k) ﻩﻩﻩreturn mid ; ﻩ else if(s、elem[mid]、key > k) ﻩﻩ high = mid - 1 ; ﻩﻩelse ﻩlow = mid +1 ; ﻩ} ﻩreturn —1 ; } void main() { PBinTable p ; ﻩint i , n ; ﻩKeyType a ; p = Init_BinTable() ; cout<<”请输入数据个数:” ; cin〉>n ; ﻩcout<〈"请按从小到大得顺序输入数据:”〈<endl ; for(i = 0 ; i 〈 n ; i ++) ﻩ{ cin>〉a ; ﻩ insert_BinTable(p , a) ; } ﻩcout<<"请输入要查找得数据,输入32767结束:” ; ﻩcin〉>a ; while(a != 32767) { ﻩi =BinSearch(*p , a) ; if(i == -1) ﻩ{ ﻩﻩcout〈〈"无此数据!请重新输入:"〈〈endl ; cin>>a ; ﻩ} ﻩelse { ﻩcout<<"该数据得位置就是:”〈<i+1〈<endl ; ﻩﻩﻩcout<〈”请输入要查找得数据:" ; cin>〉a ; } ﻩ} }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服