欢迎来到天天文库
浏览记录
ID:49547632
大小:48.50 KB
页数:6页
时间:2020-03-02
《数据结构实验五查找的实现.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.实验五查找的实现一、实验内容1、建立一个线性表,对表中数据元素存放的先后次序没有任何要求。输入待查数据元素的关键字进行查找。为了简化算法,数据元素只含一个整型关键字字段,数据元素的其余数据部分忽略不考虑。建议采用前哨的作用,以提高查找效率。2、查找表的存储结构为有序表,输入待查数据元素的关键字利用折半查找方法进行查找。此程序中要求对整型量关键字数据的输入按从小到大排序输入。二、源代码和执行结果1、#includeusingnamespacestd;#defineMAX100#defineKeyTypeinttypedefstruct{KeyType
2、key;}DataType;typedefstruct{DataTypeelem[MAX];intlength;}SeqTable,*PSeqTable;PSeqTableInit_SeqTable(){PSeqTablep=(PSeqTable)malloc(sizeof(SeqTable));if(p!=NULL){p->length=0;returnp;}else{cout<<"Outofspace!"<length>=MAX)
3、{cout<<"overflow!"<elem[p->length].key=x;p->length++;return1;}intSeqSearch(SeqTables,KeyTypek){intn,i=0;n=s.length;s.elem[n].key=k;while(s.elem[i].key!=k)i++;if(i==n)return-1;elsereturni;}voidmain(){PSeqTablep;inti,n;KeyTypea;p=Init_SeqTable();cout<<"请输入数据个数:";cin>>n;co
4、ut<<"请输入数据:"<>a;insert_SeqTable(p,a);}cout<<"请输入要查找的数据,输入32767结束:";cin>>a;while(a!=32767){范文..i=SeqSearch(*p,a);if(i==-1){cout<<"无此数据!请重新输入:"<>a;}else{cout<<"该数据的位置是:"<>a;}}}2、#includeusingnamespacestd;#defi
5、neMAX100#defineKeyTypeinttypedefstruct{KeyTypekey;}DataType;typedefstruct{DataTypeelem[MAX];范文..intlength;}BinTable,*PBinTable;PBinTableInit_BinTable(){PBinTablep=(PBinTable)malloc(sizeof(BinTable));if(p!=NULL){p->length=0;returnp;}else{cout<<"Outofspace!"<6、nTable(PBinTablep,KeyTypex){if(p->length>=MAX){cout<<"overflow!"<elem[p->length].key=x;p->length++;return1;}intBinSearch(BinTables,KeyTypek){intlow,mid,high;low=0;high=s.length-1;while(low<=high){mid=(low+high)/2;if(s.elem[mid].key==k)returnmid;elseif(s.elem[mid].key>k)7、high=mid-1;elselow=mid+1;范文..}return-1;}voidmain(){PBinTablep;inti,n;KeyTypea;p=Init_BinTable();cout<<"请输入数据个数:";cin>>n;cout<<"请按从小到大的顺序输入数据:"<>a;insert_BinTable(p,a);}cout<<"请输入要查找的数据,输入32767结束:";cin>>a;while(a!=32767){i=BinSearch(*p,a);if(i==-
6、nTable(PBinTablep,KeyTypex){if(p->length>=MAX){cout<<"overflow!"<elem[p->length].key=x;p->length++;return1;}intBinSearch(BinTables,KeyTypek){intlow,mid,high;low=0;high=s.length-1;while(low<=high){mid=(low+high)/2;if(s.elem[mid].key==k)returnmid;elseif(s.elem[mid].key>k)
7、high=mid-1;elselow=mid+1;范文..}return-1;}voidmain(){PBinTablep;inti,n;KeyTypea;p=Init_BinTable();cout<<"请输入数据个数:";cin>>n;cout<<"请按从小到大的顺序输入数据:"<>a;insert_BinTable(p,a);}cout<<"请输入要查找的数据,输入32767结束:";cin>>a;while(a!=32767){i=BinSearch(*p,a);if(i==-
此文档下载收益归作者所有