- 2
- 0
- 约9.12千字
- 约 13页
- 2025-05-08 发布于四川
- 举报
PAGE/NUMPAGES
淮海工学院计算机科学系
实验报告书
课程名:《数据结构》
题目:查找、排序应用实验
班级:软嵌151
学号:2025123349
姓名:陈正宁
评语:
评语:
成绩:指导教师:
批阅时间:年月日
排序、查找的应用实验报告要求
1目的与要求:
1)查找、排序是日常数据处理过程中经常要进行的操作和运算,掌握其算法与应用对于提高学生数据处理能力和综合应用能力显得十分重要。
2)本次实验前,要求同学完整理解有关排序和查找的相关算法和基本思想以及各种算法使用的数据存储结构;
3)利用C或C++语言独立完成本次实验内容或题目,程序具有良好的交互性(以菜单形式列出实验排序和显示命令,并可进行交互操作)和实用性;
4)本次实验为实验成绩评定主要验收内容之一,希望同学们认真对待,并按时完成实验任务;
5)本次实验为综合性实验,请于2025年12月18日按时提交实验报告(纸质报告每班10份);
6)下周开始数据结构课程设计,务必按时提交实验报告,不得拖延。
2实验内容或题目
题目:对待排序记录序列(查找表):{287,109,063,930,589,184,505,269,008,083}分别实现如下操作:
分别使用直接插入排序、冒泡排序、快速排序(可选)、简单选择排序、堆排序(可选)、链式基数排序算法对纪录序列进行排序,并显示排序前后结果;
针对上述不同的排序方法,使用顺序和折半查找方法进行记录排序前后位置的查找验证;
(特别要求:使用菜单机制和交互方式,在一个主程序下实现题目要求的排序和查找以及结果显示)
3实验步骤与源程序
#includestdio.h
#includestdlib.h
#includemalloc.h
#includemath.h
#defineLIST_SIZE20
#defineKEY_SIZE6
#defineRADIX10
#defineTRUE1
#defineFALSE0
#defineSUCCESS1
#defineUNSUCCESS-1
#defineMAX20
typedefintKeyType;
typedefintOtherType;
typedefstruct
{KeyTypekey;
OtherTypeother_data;
}RecordType;
typedefstruct
{KeyTypekey[KEY_SIZE];
inttype;
intnext;
}RecordType1;
typedefstruct
{
RecordType1R[LIST_SIZE+1];
intlength;
intkeynum;
}SLinkList;
typedefintPVector[RADIX];
typedefstruct
{RecordTyper[LIST_SIZE+1];/*r[0]为工作单元*/
intlength;
}RecordList;
//二叉排序树的创建与查找
#defineENDKEY0
typedefstructnode
{
KeyTypekey;/*关键字的值*/
structnode*lchild,*rchild;/*左右指针*/
}BSTNode,*BSTree;
/*哈希表的创建*/
typedefstruct
{
intkey;
intflag;//falg=1时表示有关键字,=0时表示没有关键字
}Elemtype;
typedefstruct
{
Elemtype*elem;//动态分配的哈希表的首地址
intsizeindex;//hashsize[sizeindex]为当前容量
intcount;//当前数据元素个数
}HashTable;
/*顺序查找*/
voidSeqSearch(RecordListl,KeyTypek)
/*在顺序表l中顺序查找其关键字等于k的元素,若找到,则函数值为该元素在表中的位置,否则为0*/
{
inti;
l.r[0].key=k;
i=l.length;
while(l.r[i].key!=k)i--;
if(i=1)
原创力文档

文档评论(0)