实训题九 查找.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
姓名:袁茶花 班级:10 信息 学号:201010520148 实训题九 查找 一、实训目的 1.掌握各种查找的基本思想。 2.掌握各种查找方法的算法实现。 3.掌握各种查找方法的好坏及所适用的不同场合。 二、实训内容 1.给定关键字序列32,75,29,63,48,94,25,46,18,70,用二叉树排序树进行查找,并给出查找成功与不成功的信息。 2.对上面给定的关键字,构造散列函数H(k)=k%13,散列地址为HT[0]~HT[12],试用线性探查法和外链法构造散列表,实现散列查找,并给出查找成功与不成功的信息。 三、算法的描述 1. #includeiostream.h #define elemtype int const int m=13; const int n=10; elemtype r[n+1]; struct Btreenode { elemtype data; Btreenode *left,*right; }; struct Lnode { elemtype data; Lnode *next; }; Btreenode *Insert(Btreenode *BST,elemtype X) { Btreenode *p,*q; Btreenode *s=new Btreenode; s-data=X; s-left=s-right=NULL; p=BST; while(p!=NULL) { q=p;if(p-dataX) p=p-left;else p=p-right;} if(BST==NULL)return s; if(q-dataX) q-left=s; else q-right=s; return BST; } Btreenode *Creat(int n) { elemtype x; Btreenode *BST=NULL; for(int i=1;i=n;i++) { x=r[i]; BST=Insert(BST,x); } return BST; } Btreenode *find1(Btreenode *BST,elemtype x) { if(BST==NULL) return NULL; else { Btreenode *p=BST; while(p!=NULL) { if(p-data==x) break; else if(p-datax) p=p-left; else p=p-right; } if(p!=NULL) return p; else return NULL; } } int H(elemtype k) {return k%13;} void creat1(elemtype HT[m],int n) { int i,j; elemtype k; for(i=0;im;i++) HT[i]=NULL; for(i=1;i=n;i++) { k=r[i]; j=H(k); while(HT[j]!=NULL) j=(j+1)%m; HT[j]=k; } } void creat2(Lnode *HT[m],int n) { int i,j;elemtype k;Lnode *s; for(i=0;im;i++) {HT[i]-data=i;HT[i]-next=NULL;} for(i=1;i=n;i++) { k=r[i]; j=H(k); s=new Lnode; s-data=k; s-next=HT[j]-next; HT[j]-next=s; } } int find2(elemtype HT[m],elemtype k) { int j=H(k); if(HT[j]==NULL) return -1; else if(HT[j]==k) return j; else { while((HT[j]!=k)(HT[j]!=NULL)) j=(j+1)%m; if(HT[j]==NULL) return -1; else return j; } } Lnode *find3(Lnode *HT[m],elemtype k) { int j=H(k); Lnode *p=HT[j]-next; while((p!=NULL)(p-data!=k)) p=p-next; if(p!=NULL) return p; else return NULL; } void main() { int n1=1,t1=1,yn=1,p2

文档评论(0)

linyin1994 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档