查找算法的实现和应用

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验4查找算法的实现和应用实验目的1.熟练掌握静态查找表的查找方式2.熟练掌握动态查找表的查找方式实验内容1.用顺序查找法对表进行查找2.用二分查找法对表进行查找3.建立二叉排序树并对该树进行查找顺序查找法如下所示:intSeqsch(ElemTypeA[],intn,KeyTypeK){//从顺序表A的n个元素中顺序查找关键字为K的元素,若成功返回其下标,否则返回-1inti;for(i=0;in;i++){if(A[i].key==K)break;}if(i=n-1)//查找成功返回下标,否则返回-1returni;elsereturn-1;}二分查找法如下所示intBinarySearch(int*array,intaSize,intkey){if(array==NULL||aSize==0)return-1;intlow=0;inthigh=aSize-1;intmid=0;while(low=high){mid=(low+high)/2;if(array[mid]key)low=mid+1;elseif(array[mid]key)high=mid-1;elsereturnmid;}return-1;}二叉排序树查找如下(伪代码)voidCreate(BiTNode*B)//建立{intm;charr;BiTNode*p,*q;p=NULL;printf(请输入顶点数据:);while(r!='\n'){scanf(%d%c,&m,&r);if(p==NULL){B-data=m;p=B;}else{q=(BiTNode*)malloc(sizeof(BiTNode));q-data=m;q-lchild=NULL;q-rchild=NULL;p=B;while(p-data!=q-data){if(p-dataq-data){if(p-rchild==NULL)p-rchild=q;p=p-rchild;}else{if(p-lchild==NULL)p-lchild=q;p=p-lchild;}}}}}voidSearch(BiTNode*B,intkey)//查找{BiTNode*p;p=B;while(p!=NULL&&p-data!=key){if(p-datakey)p=p-rchild;elsep=p-lchild;}if(p==NULL)printf(数据不存在\n,key);elseprintf(数据存在\n,key);printf(\n);}

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功