欢迎来到天天文库
浏览记录
ID:38251594
大小:63.47 KB
页数:10页
时间:2019-06-06
《C++查找与排序实验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、附件(四)深圳大学实验报告课程名称:数据结构实验与课程设计实验项目名称:树结构实验学院:计算机与软件学院专业:软件工程指导教师:报告人:学号:班级:实验时间:实验报告提交时间:教务处制一、实验目的与完成说明:数据结构实验--哈希查找给出一个数据序列,建立哈希表,采用求余法作为哈希函数,模数为11,哈希冲突用链地址法和表头插入如果首次查找失败,就把数据插入到相应的位置中实现哈希查找功能数据结构实验--希尔排序给出一个数据序列,使用希尔排序算法进行从小到大的排序间隔gap使用序列长度循环除2直到1数据结构实验--快速排序第一行输入t,表示有t个测试示例第二行输入n,表示第一
2、个示例有n个数据第三行输入n个数据,都是正整数,数据之间用空格隔开以此类推二、主要思路与方法:哈希查找:给定K值,根据造表时设定的哈希函数得到哈希地址,若此表中此位置没有记录,则查找不成功,否则比较关键字,若何给定值相等,则查找成功;否则根据造表时设定的处理冲突的方法找下一地址,直至哈希表的某个位置为空或表中记录的关键字等于给定的定值时为止。希尔排序:先将整个待排记录序列分割成若干子序列分别进行直接插入排序,待整个序列中的记录基本有序时,再对全体记录进行一次直接插入排序。快速排序:通过一趟排序将待排记录分割成独立的两个部分,其中一部分记录的关键字均比另一部分记录的关键字
3、小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。三.实验程序或内容: 哈希查找:#includeusingnamespacestd;classnode{public: intdata; node*next; node(){data=0;next=NULL;}}; intmain(){ intn; boolvisit[11]; for(intz=0;z<11;z++) visit[z]=false; inti; cin>>n; inta[20]; for(i=
4、0;i>a[i]; inttarget,temp; nodemylistnode[11]; for(i=0;idata=a[i]; mylistnode[temp].next=s; visit[temp]=true; } else
5、 { node*p=mylistnode[temp].next; node*q=newnode(); q->data=a[i]; mylistnode[temp].next=q; q->next=p; } } intt; cin>>t; while(t--) { cin>>target; intt1=target%11; if(!visit[t1])
6、 { cout<<"error"<data=target; mylistnode[t1].next=r; visit[t1]=true; } else { intflag=0; intcount=0; node*x=mylistnode[t1].next; while(x!=
7、NULL) { count++; if(x->data==target) { flag=1; break; } x=x->next; } if(flag==0) { node*n2=myl
此文档下载收益归作者所有