1 / 18
文档名称:

数据结构实验三实验报告.docx

格式:docx   大小:22KB   页数:18页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构实验三实验报告.docx

上传人:qi1920809 2018/11/1 文件大小:22 KB

下载得到文件列表

数据结构实验三实验报告.docx

文档介绍

文档介绍:数据结构实验三实验报告
篇一:数据结构实验报告3
计算机科学与技术系
实验报告
专业名称网络系统管理
课程名称数据结构与算法
项目名称顺序表的排序实验
班级 13网管班
学号130405XX
姓名汪康
实验题目:顺序表的排序实验
1、问题分析
本次试验要求使用直接插入排序算法给顺序表中的元素进行排序,那么在设计算法时,需考虑以下4点:
(1)建立一个顺序表;
(2)在顺序表中插入元素;
(3)给表中元素进行排序
(4)设计主函数,完成以上功能
2、概要设计
1)为了实现上述程序功能,需要:
(1)建立一个自定义函数SqList;(2)建立函数InitSqList,用来申请地址空间和插入表中元素;(3)建立函数InsertSort,将顺序表中的元素排序;(4)建立函数print,用来输出排好序的元素;(5)最后,设计主函数main,调用以上函数。
2)本程序包含5个函数:
(1)主函数main()
(2)自定义函数SqList()
(3)初始化顺序表函数InitSqList()
(4)排序函数InsertSort()
(5)输出函数print()
各函数间关系如下: SqList
InitSqList
InsertSort
print
3、详细设计
#include ""//因程序中存在输入和输出函数,设计头文件用来存储#include ""//、一些宏和通用工具函数#include "" //程序中含有申请地址空间
#define MAXSIZE 10 //自定义一个常量MAXSIZE,其最大值为10
typedef struct{ //定义数据类型为结构型
int r[MAXSIZE];//定义一个整型数组r,也就是将数组r中的元
素放入顺序表L中,之后用来比较最大和最小值
int last; //定义一个整型变量last,也就是分量last,用来记录
顺序表L中最后一个数据元素的下标
}SqList;
SqList*L;//将顺序表L定义成SqList
void InitSqList()//向系统申请一个存储空间给顺序表L,并输入表中的元素{
L->last=-1;//将表L置空
scanf("%d",&i);//输入表长
if(i>0){
printf("请输入需排序元素()");
for(L->last=1;L->lastlast++)
} } scanf("%d",&(L->r[L->last]));//在表L最后一个元素的下标不超过i的情况下,向顺序表L中输入元素 int i;//定义一个整型变量i,作为表长变量 L = (SqList *)malloc(sizeof(SqList)); //通过函数malloc给顺序表L分配一个大小为10的分配空间
void InsertSort(){ //对顺序表L中的元素做直接插入排序
int i,j; //定义整型变量i和j,i作为循环控制变量
for(i = 1; i last; i++){
L->r[0] = L->r[i];//将待插入的元素存到监视哨r[0]中
j=i-1; //j指向i的下一元素
while(L->r[0] r[j]){ //寻找插入位置
L->r[j+1] = L->r[j];
j=j-1;
}
}
} L->r[j+1]=L->r[0]; //将待插入的元素插入到已排序的序列中
void print(){//将排好序的顺序表L输出
int i; //定义一个整型变量i,作为循环控制变量
for(i = 2; i last; i++)
}
printf("%d ",L->r[i]); //输出已排序的数据元素
int main(){ //用主函数调用子函数
} InitSqList(); //调用函数InitSqList InsertSort(); //调用函数InsertSort print();//调用函数print return 0;
4、调试分析
在此次实验中,运行后发现很多错误,有的是括号少了,有的是标点符号忘记加了,导致一直运行错误,经过仔细检查,排除了错误,最后运行成功,得到了结果。
5、用户使用说明
调试程序,发现程序没有错误后,运行程序。由程序内容可知,先输入顺序表L的表长,再输入表L中的数据元素。
6、测试结果
篇二:图及Kruscal算法-数据结构实验报告(3)