欢迎来到天天文库
浏览记录
ID:16319050
大小:17.76 KB
页数:5页
时间:2018-08-09
《数据结构之顺序表元素查找》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据结构--顺序表查找#include#include#defineMAXSIZE100int data[MAXSIZE]; int len;typedef struct{ intdata[MAXSIZE]; int len;}SeqList; SeqList*Init_SeqList() { SeqList*L; L=(SeqList*)malloc(sizeof(SeqList)); L->len=-1; returnL; }//顺序查找intSearchSeq(SeqList*S,intt){ in
2、ti; for(i=0;ilen;i++) if(t==S->data[i]) { returni; break; } if(i==S->len) return-1;}//对顺序表进行排序SeqList*Sort(SeqList*S){ inttemp,i,j;for(i=0;ilen;i++){ for(j=i+1;jlen;j++) if(S->data[j]>S->data[j+1]) { temp=S->data[j];S->data[j]=S->data[j+1];S->data[j+1]=
3、temp; } }for(intk=0;klen;k++){printf("%d",S->data[k]);}returnS;}//折半查找intSearchBin(SeqList*S,intt){intmid,low=0,high=S->len-1; while(low<=high) { mid=(low+high)/2; if(t==S->data[mid])returnmid; elseif(t>S->data[mid])low=mid+1; elsehigh=mid-1; } return-1;} intmain(){ SeqL
4、ist*L=Init_SeqList(); intt1,t2,len,e; printf("请输入顺序表的长度"); scanf("%d",&L->len); printf("请输入顺序表中各元素:"); getchar(); for(intk=0;klen;k++) { scanf("%d",&e); L->data[k]=e; } printf("请输入要查找的数:"); scanf("%d",&t1); intm=SearchSeq(L,t1); if(m>-1) printf("该查找的数顺序查找后在顺序表中的位置为%d:",m+1);
5、else printf("该数没有找到"); printf("排序之后的顺序表"); SeqList*S=Sort(L); printf("请输入要查找的数:"); scanf("%d",&t2); ints=SearchBin(S,t2); if(s>-1) printf("该查找的数折半查找后在顺序表中的位置为%d:",s+1); else printf("该数没有找到"); return0;}
此文档下载收益归作者所有