网站大量收购独家精品文档,联系QQ:2885784924

查找排序的应用实验.docx

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

mph + 关注
官方认证
内容提供者

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

认证主体上海谭台科技有限公司
IP属地湖北
统一社会信用代码/组织机构代码
91310115MA7CY11Y3K

1亿VIP精品文档

相关文档