数据结构实验四:顺序表的排序实验

数据结构实验四:顺序表的排序实验

ID:14288323

大小:123.50 KB

页数:4页

时间:2018-07-27

数据结构实验四:顺序表的排序实验_第1页
数据结构实验四:顺序表的排序实验_第2页
数据结构实验四:顺序表的排序实验_第3页
数据结构实验四:顺序表的排序实验_第4页
资源描述:

《数据结构实验四:顺序表的排序实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一,实验题目实验四:顺序表的排序实验设计算法将一个整型数组调整为这样的数组:所有3的倍数在最左边,所有除以3余1的数在中间,而所有除以3余2的数在最左边。要求算法的时间尽可能少。二,问题分析本程序要求实现将一个整型数组调整为这样的数组:所有3的倍数在最左边,所有除以3余1的数在中间,而所有除以3余2的数在最左边。根据题目要求,可以用顺序表来实现。程序所能达到的是将顺序表中的元素根据被3整除的情况有规则的输出。1,数据的输入形式和输入值的范围:输入的顺序表的个数为大于0且小于顺序表最大长度的整型数据,而顺序表的元素为整型。2,结果的输出形式:

2、程序正确运行后,应输出顺序表中的元素是:所有3的倍数在最左边,所有除以3余1的数在中间,而所有除以3余2的数在最左边。3,测试数据:(1)顺序表长度i:4,顺序表元素:33,45,78,99(2)顺序表长度i:5,顺序表元素:-12,-4,10,39,93(3)顺序表长度i:6,顺序表元素:25,43,8,99,45,32三,概要设计1,为了实现以上程序功能,需要:1)建立一个含有i个元素的顺序表2)对顺序表的元素进行分区,将所有3的倍数在最左边,所有除以3余1的数在中间,而所有除以3余2的数在最左边。sqlset()3)在屏幕上输出分区后

3、的顺序表元素。main()2,本程序包含3个函数1)主函数main()dispart()2)顺序表输入函数sqlset()3)顺序表分区函数dispart()四,详细设计1,顺序表类型定义:typedefstruct{intr[list_size+1];intlength,a,b,c;intx[list_size+1];//用于存放能被3整除的数inty[list_size+1];//用于存放除以3余1的数intz[list_size+1];//用于存放除以3余2的数}recordlist;2,顺序表元素函数伪代码:recordlist*s

4、qlset(){recordlist*L;inti;L->length=-1;//初始化顺序表长度L->a=0;//初始化存放能被3整除的顺序表的长度L->b=0;L->c=0;scanf("%d",&i);for(L->length=0;L->lengthlength++)scanf("%d",&L->r[L->length]);}3,分块函数伪代码:recordlist*dispart(recordlist*L,intm){//m为顺序表的长度inti;for(i=0;ir[i]%3==0){L-

5、>x[L->a]=L->r[i];L->a++;}elseif(L->r[i]%3==1){L->y[L->b]=L->r[i];L->b++;}else{L->z[L->c]=L->r[i];L->c++;}}for(i=0;ia;i++)printf("%d",L->x[i]);printf("tt");for(i=0;ib;i++)printf("%d",L->y[i]);printf("tt");for(i=0;ic;i++)printf("%d",L->z[i]);printf("");retu

6、rnL;}一,源程序#include"stdio.h"#include"malloc.h"#definelist_size100typedefstruct{intr[list_size+1];intlength,a,b,c;intx[list_size+1];//用于存放能被3整除的数inty[list_size+1];//用于存放除以3余1的数intz[list_size+1];//用于存放除以3余2的数}recordlist;recordlist*sqlset(){//顺序表元素函数recordlist*L;//定义一个recordli

7、st型指针变量Linti;L=(recordlist*)malloc(sizeof(recordlist));//为顺序表申请空间L->length=-1;//初始化顺序表长度L->a=0;//初始化存放能被3整除的顺序表的长度L->b=0;//初始化存放除以3余1的顺序表的长度L->c=0;//初始化存放除以3余2的顺序表的长度printf("请输入顺序表的长度i(ilength=0;L->lengthl

8、ength++)scanf("%d",&L->r[L->length]);returnL;}recordlist*dispart(recordlist*L,intm){//顺序表

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

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

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