北京理工大学数据结构实验报告实验四

北京理工大学数据结构实验报告实验四

ID:26884627

大小:95.00 KB

页数:9页

时间:2018-11-29

北京理工大学数据结构实验报告实验四_第1页
北京理工大学数据结构实验报告实验四_第2页
北京理工大学数据结构实验报告实验四_第3页
北京理工大学数据结构实验报告实验四_第4页
北京理工大学数据结构实验报告实验四_第5页
资源描述:

《北京理工大学数据结构实验报告实验四》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《数据结构与算法设计》实验报告——实验四学院:班级:学号:姓名:一、实验目的1.通过实验实践、巩固线性表的相关操作;2.熟悉VC环境,加强编程、调试的练习;3.用C语言实现线性表的抽象数据类型,实现线性表构造、插入、取数据等基本操作;4.理论知识与实际问题相结合,利用上述基本操作实现三种排序并输出。二、实验内容从键盘输入10个数,编程实现分别用插入排序、交换排序、选择排序算法进行排序,输出排序后的序列。三、程序设计1、概要设计为了实现排序的功能,需要将输入的数字放入线性表中,进行进一步的排序操作。(1)抽象数据类型:ADTSqList{数据对象:D=数据关系:R1=基本操作:I

2、nPut(SqList&L)操作结果:构造一个线性表L。OutPut(SqListL)初始条件:线性表L已存在。操作结果:按顺序在屏幕上输出L的数据元素。InsertSort(SqList&L)初始条件:线性表L已存在。操作结果:对L的数据元素进行插入排序。QuickSort(SqList&L)初始条件:线性表L已存在。操作结果:对L的数据元素进行快速排序。SelectSort(SqList&L)初始条件:线性表L已存在。操作结果:对L的数据元素进行选择排序。}ADTSqList⑵主程序流程由主程序首先调用InPut(L)函数创建顺序表,调用InsertSort(L)函数进行插

3、入排序,调用OutPut(L)函数显示排序结果。调用QuickSort(L)函数进行交换排序,调用OutPut(L)函数显示排序结果。调用SelectSort(L)函数进行选择排序,调用OutPut(L)函数显示排序结果。⑶模块调用关系由主函数模块调用创建顺序表模块,排序模块与显示输出模块。⑷流程图开始结束创建线性表进行插入排序进行交换排序进行选择排序输出排序结果输出排序结果输出排序结果2、详细设计(1)、宏定义#defineMAXSIZE15//用作示例的小顺序表的最大长度(2)、抽象数据类型定义typedefstruct{intkey;//关键字域intotherinfo;

4、//其它域}RedType;//记录类型typedefstruct{RedTyper[MAXSIZE+1];//r[0]闲置或用作哨兵单元intlength;//顺序表长度}SqList;//顺序表类型(3)、操作算法程序实现:voidInPut(SqList&L){//输入数字,创建顺序表inti;printf("请输入10个数字:");L.length=10;for(i=1;i<=L.length;i++){scanf("%d",&L.r[i].key);}}voidInsertSort(SqList&L){//对顺序表L作直接插入排序(非递减)inti,j;for(i

5、=2;i<=L.length;++i)if(L.r[i].key

6、].key=L.r[low].key;//用子表的第一个记录作枢轴记录pivotkey=L.r[low].key;//枢轴记录关键字while(low=pivotkey){--high;//将比枢轴记录小的记录移到低端}L.r[low].key=L.r[high].key;while(low

7、=L.r[0].key;//枢轴记录到位returnlow;//返回枢轴位置}voidQSort(SqList&L,intlow,inthigh){//对顺序表L中的子序列L.r[low…high]作快速排序intpivotloc;if(low

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。