- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
!-
!-
淮海工学院计算机科学系
实验报告书
课 程 名 : 《数据结构》
题
目:
查找、排序的应用实验
班
级:
软件 081 班
学
号:
110831123
姓
名:
XX
评语:
评语:
成绩:
指导教师:
批阅时间:
年
月
日
排序、查找的应用实验报告要求
目的与要求:
查找、排序是日常数据处理过程中经常要进行的操作和运算,掌握其算法与应用对于 提高学生数据处理能力和综合应用能力显得十分重要。
本次实验前,要求同学完整理解有关排序和查找的相关算法和基本思想以及种算法使 用的数据存储结构;
利用C 或 C++语言独立完成本次实验内容或题目,程序具有良好的交互性(以菜单机制实现实验程序的交互运行)和实用性;
本次实验在机房现场验收和平分,希望同学们认真对待,并按时完成实验任务;
认真书写实验报告(包括程序清单及相关实验数据与完整运行结果),并按时提交。
实验内容或题目
题目:对记录序列(查找表):{55,13,23,72,109,67,2,78,13}分别实现如下操作:
顺序查找;
分别使用直接插入排序、冒泡排序、快速排序对原纪录序列进行排序;
对排好序的纪录序列表进行折半查找;
利用原纪录序列建立一颗二叉排序树,并在其上实现特定关键字值结点的查找;
按照“除留余数法”哈希构造函数和线性探测再散列的冲突处理方法创建表长为m=11 的哈希表;
实现 5)创建哈希表上的查找。
实验步骤与源程序
#include stdio.h #include stdlib.h #includemalloc.h #define LIST_SIZE 20
#define TRUE 1
#define FALSE 0
#define SUCCESS 1
#define UNSUCCESS -1
#define MAX 100 typedef char KeyType; typedef int OtherType; typedef struct
{KeyType key;
OtherType other_data;
}RecordType; typedef struct
{RecordType r[LIST_SIZE+1]; /* r[0]为工作单元 */ int length;
}RecordList;
//二叉排序树的创建与查找#define ENDKEY 0
typedef struct node
{
KeyType key ; /*关键字的值*/
struct node *lchild,*rchild;/*左右指针*/
}BSTNode, *BSTree;
/*哈希表的创建*/ typedef struct
{
int key;
int flag;//falg=1 时表示有关键字,=0 时表示没有关键字
}Elemtype; typedef struct
{
Elemtype *elem;//动态分配的哈希表的首地址int sizeindex;//hashsize[sizeindex]为当前容量int count;//当前数据元素个数
}HashTable;
/*顺序查找*/
void SeqSearch(RecordList l, KeyType k)
/*在顺序表l 中顺序查找其关键字等于k 的元素,若找到,则函数值为该元素在表中的位置,否则为 0*/
{
int i; l.r[0].key=k; i=l.length;
while (l.r[i].key!=k) i--; if (i=1)
{
printf(该元素k 所在的位置是:); printf(%d,i);
}
else
printf(该元素不存在);
}
//直接插入排序
void InsSort(RecordType r[], int length)
/* 对记录数组r 做直接插入排序,length 为数组中待排序记录的数目*/
{
int i,j;
for (i=2; i=length; i++)
{
r[0]=r[i]; /*将待插入记录存放到监视哨r[0]中*/ j=i-1;
while (r[0].key r[j].key ) /* 寻找插入位置 */
{
r[j+1]= r[j]; j=j-1;
}
r[j+1]=r[0]; /*将待插入记录插入到已排序的序列中*/
}
} /* InsSort */
/*冒泡排序*/
void BubbleSort(RecordType r[],int length)
/*对记录数组r 做冒泡排序,length 为数组的长度*/
{
int x,i,n,change,j; n=length;change=TRUE;
for(i=1;i=n-1change;++i)
{
change=FALSE; for(j=1;j
您可能关注的文档
- 叉车培训资料.docx
- 叉车日常保养记录表格模板.docx
- 叉车使用记录表.docx
- 叉车事故应急紧急方案计划.docx
- 插花作品赏析.docx
- 插画课程小结.docx
- 插画师及作品评析.docx
- 插入SmartArt图形教案.docx
- 插入式超声波流量计安装调试方法简述.docx
- 茶场承包合同.docx
- 隐形变异作风问题的检视与整改培训讲座PPT课件.pptx
- 内蒙古自治区赤峰第四中学2023-2024学年高二下学期5月期中物理试题 含解析.docx
- 内蒙古自治区巴彦淖尔市第一中学2024-2025学年高一下学期4月期中考试 物理 含答案.docx
- 内蒙古自治区赤峰市第四中学2024-2025学年高二下学期4月月考试题 物理 含答案.docx
- 内蒙古自治区鄂尔多斯市达拉特旗达拉特旗第一中学2023-2024学年高一下学期7月期末考试物理试题 含解析.docx
- 新修订《代表法》五大亮点解读.pptx
- 幼儿园夏季防暑降温安全课主题活动PPT课件.pptx
- 2025年宜明昂科分析报告:CD47融合蛋白安全性及疗效优秀,市场空间广阔.pdf
- 2-数学_数学答案.pdf
- 幼儿园小学端午节习俗文化教育教学主题班会PPT课件.pptx
文档评论(0)