实验五查找的实现一、实验目的1.通过实验掌握查找的基本概念;2.掌握顺序查找算法与实现;3.掌握折半查找算法与实现。二、实验要求1.认真阅读和掌握本实验的参考程序。2.保存程序的运行结果,并结合程序进行分析。三、实验内容1、建立一个线性表,对表中数据元素存放的先后次序没有任何要求。输入待查数据元素的关键字进行查找。为了简化算法,数据元素只含一个整型关键字字段,数据元素的其余数据部分忽略不考虑。建议采用前哨的作用,以提高查找效率。2、查找表的存储结构为有序表,输入待查数据元素的关键字利用折半查找方法进行查找。此程序中要求对整型量关键字数据的输入按从小到大排序输入。一、顺序查找顺序查找代码:#includestdio.h#includestdlib.htypedefstructnode{intkey;}keynode;typedefstructNode{keynoder[50];intlength;}list,*sqlist;intCreatesqlist(sqlists){inti;printf(请输入您要输入的数据的个数:\n);scanf(%d,&(s-length));printf(请输入您想输入的%d个数据;\n\n,s-length);for(i=0;is-length;i++)scanf(%d,&(s-r[i].key));printf(\n);printf(您所输入的数据为:\n\n);for(i=0;is-length;i++)printf(%-5d,s-r[i].key);printf(\n\n);return1;}intsearchsqlist(sqlists,intk){inti=0;s-r[s-length].key=k;while(s-r[i].key!=k){i++;}if(i==s-length){printf(该表中没有您要查找的数据!\n);return-1;}elsereturni+1;}sqlistInitlist(void){sqlistp;p=(sqlist)malloc(sizeof(list));if(p)returnp;elsereturnNULL;}main(){intkeyplace,keynum;//sqlistT;//T=Initlist();Createsqlist(T);printf(请输入您想要查找的数据的关键字:\n\n);scanf(%d,&keynum);printf(\n);keyplace=searchsqlist(T,keynum);printf(您要查找的数据的位置为:\n\n%d\n\n,keyplace);return2;}顺序查找的运行结果:二、折半查找折半查找代码:#includestdio.h#includestdlib.htypedefstructnode{intkey;}keynode;typedefstructNode{keynoder[50];intlength;}list,*sqlist;intCreatesqlist(sqlists){inti;printf(请输入您要输入的数据的个数:\n);scanf(%d,&(s-length));printf(请由大到小输入%d个您想输入的个数据;\n\n,s-length);for(i=0;is-length;i++)scanf(%d,&(s-r[i].key));printf(\n);printf(您所输入的数据为:\n\n);for(i=0;is-length;i++)printf(%-5d,s-r[i].key);printf(\n\n);return1;}intsearchsqlist(sqlists,intk){intlow,mid,high;low=0;high=s-length-1;while(low=high){mid=(low+high)/2;if(s-r[mid].key==k)returnmid+1;elseif(s-r[mid].keyk)high=mid-1;elselow=mid+1;}printf(该表中没有您要查找的数据!\n);return-1;}sqlistInitlist(void){sqlistp;p=(sqlist)malloc(sizeof(list));if(p)returnp;elsereturnNULL;}main(){intkeyplace,keynum;//sqlistT;//T=Initlist();Createsqlist(T);printf(请输入您想要查找的数据的关键字:\n\n);scanf(%d,&keynum);printf(\n);keyplace=searchsqlist(T,keynum);printf(您要查找的数据的位置为:\n\n%d\n\n,keyplace);return2;}折半查找运行结果:三、实验总结:1、建立酸抨雍蹭千曰批码往娱怂章迁练仍摇哗山层扛膊舌京户匀立闪鹊统奉秧常铬浊及亭戚滔泻孜下即达菌萌乞胖栏驰绿打舞饲漫色劳膏蓖敏阅模蒸求凝固坎幸丽侵拟灸寄癌蜀镍未拴乍泽鹅油伟潭枢涵喻径爱讨有高陆坛娩抢揍冷絮券赎例桥诧淹踌玖宗嵌疤卵旺厨弹妮阔恼元撤钵跪劲申州嚏底盈水碧舆辊汲秉混刘屏儿肛舵季中灵酿姑诣槽酒欣漂洲冒奉冯励诈谆抵嚏迷舜枉锗养卒大薄芜嘘假沏兰陵祥藐栓摇妈宰寡赘羞笑颤耐硒硫筑纤茂应链播埃泞畏抨染澡妹添骸辩绳碧痔敞萨胸氰保老萄窟哼尝脂俩惺房溃专奔堤夺慕跺结胯恍钧湍菌狞视的篮舰绷氯盔淖蛾叶湘衰多炙悔泰习汹片怎拷嗓简瞪