收藏 分享(赏)

北理工数据结构实验四.doc

上传人:dzzj200808 文档编号:2206372 上传时间:2018-09-05 格式:DOC 页数:9 大小:95KB
下载 相关 举报
北理工数据结构实验四.doc_第1页
第1页 / 共9页
北理工数据结构实验四.doc_第2页
第2页 / 共9页
北理工数据结构实验四.doc_第3页
第3页 / 共9页
北理工数据结构实验四.doc_第4页
第4页 / 共9页
北理工数据结构实验四.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

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

2、ElemStin数据关系:R1= 1,| ,iiiiaD基本操作:InPut(SqList /关键字域int otherinfo;/其它域RedType;/记录类型typedef structRedType rMAXSIZE+1;/r0闲置或用作哨兵单元int length;/顺序表长度SqList;/顺序表类型(3) 、操作算法程序实现:void InPut(SqList printf(“请输入 10 个数字:n“);L.length=10;for(i=1;i=pivotkey)-high;/将比枢轴记录小的记录移到低端L.rlow.key=L.rhigh.key;while(low#def

3、ine MAXSIZE 15/用作示例的小顺序表的最大长度typedef structint key;/关键字域int otherinfo;/其它域RedType;/记录类型typedef structRedType rMAXSIZE+1;/r0闲置或用作哨兵单元int length;/顺序表长度SqList;/顺序表类型void InPut(SqList printf(“请输入 10 个数字:n“);L.length=10;for(i=1;i=pivotkey)-high;/将比枢轴记录小的记录移到低端L.rlow.key=L.rhigh.key;while(lowhigh/将比枢轴记录大的

4、记录移到高端L.rhigh.key=L.rlow.key;L.rlow.key=L.r0.key;/枢轴记录到位return low;/返回枢轴位置void QSort(SqList if(lowhigh)/长度大于 1pivotloc=Partition(L,low,high);/将 L.rlowhigh一分为二QSort(L,low,pivotloc-1);/对低子表递归排序,pivotloc 是枢轴位置QSort(L,pivotloc+1,high);/对高子表递归排序void QuickSort(SqList void SelectSort(SqList for(i=1;iL.leng

5、th;i+)/选择第 i 小的记录,并交换到位k=i;for(j=i+1;jL.length;j+)/在 L.riL.length中选择 key 最小的记录if(L.rj.keyL.rk.key)k=j;if(i!=k)/与第 i 个记录交换L.r0.key=L.ri.key;L.ri.key=L.rk.key;L.rk.key=L.r0.key;void OutPut(SqList L)/输出顺序表int i;for(i=1;i=L.length;i+)printf(“%d “,L.ri.key);printf(“n“);void main()/主程序SqList L;InPut(L);/创建线性表 Lprintf(“插入排序法:n“);InsertSort(L);/对 L 进行插入排序OutPut(L);/输出线性表 Lprintf(“交换排序法:n“);QuickSort(L);/对 L 进行交换排序OutPut(L);/输出线性表 Lprintf(“选择排序法:n“);SelectSort(L);/对 L 进行选择排序OutPut(L);/输出线性表 L

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报