实验一:线性表逆置(顺序表)实验报告(一)问题的描述:实现顺序表的逆置算法(二)数据结构的设计:顺序表是线性表的顺序存储形式,因此设计如下数据类型表示线性表:typedefstruct{ElemType*elem;/*存储空间基址*/intlength;/*当前长度*/intlistsize;/*当前分配的存储容量(以sizeof(ElemType)为单位)*/}SqList;(三)函数功能、参数说明及概要设计:(SqList*L)功能说明:实现顺序表L的初始化算法设计:(SqListL)功能说明:返回顺序表L长度算法设计:(SqList*L,inti,ElemTypee)功能说明:将元素e插入到顺序表L中的第i个节点算法设计:判断顺序表是否已满,已满则加空间,未满则继续,将元素e插入到第i个元素之前,(SqListL,void(*vi)(ElemType*))功能说明:依次对L的每个数据元素调用函数vi()算法设计:依次对L的每个数据元素调用函数vi()(SqList*L)功能说明:实现顺序表L的逆置算法设计:用for循环将顺序表L中的第i个元素依次与第(i+length)(ElemType*c)功能说明:打印元素c算法设计:打印元素c2.(四)具体程序的实现/*程序名*/#include<>#include<>#include<>/*malloc()等*/#include<>/*INT_MAX等*/#include<>/*EOF(=^Z或F6),NULL*/#include<>/*atoi()*/#include<>/*eof()*/#include<>/*floor(),ceil(),abs()*/#include<>/*exit()*//*函数结果状态代码*/#RUE1#defineFALSE0#defineOK1#defineERROR0#defineINFEASIBLE-1/*#defineOVERFLOW-,故去掉此行*/typedefintStatus;/*Status是函数的类型,其值是函数结果状态代码,如OK等*/typedefintBoolean;/*Boolean是布尔类型,其值是TRUE或FALSE*/typedefintElemType;/*线性表的动态分配顺序存储结构*/#defineLIST_INIT_SIZE10 //线性表存储空间的初始分配量#defineLISTINCREMENT2 //线性表存储空间的分配增量typedefstruct{ElemType*elem; //存储空间基址intlength; //当前长度intlistsize; //当前分配的存储容量(以sizeof(ElemType)为单位)}SqList;/*顺序表示的线性表的基本操作*/StatusInitList(SqList*L)/**/{/*操作结果:构造一个空的顺序线性表*/(*L).elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!(*L).elem)exit(OVERFLOW);/*存储分配失败*/(*L).length=0;/*空表长度为0*/(*L).listsize=LIST_INIT_SIZE;/*初始存储容量*/returnOK;}StatusDestroyList(SqList*L){/*初始条件:顺序线性表L已存在。操作结果:销毁顺序线性表L*/free((*L).elem);(*L).elem=NULL;(*L).length=0;(*L).listsize=0;returnOK;}intListLength(SqListL){ //初始条件:顺序线性表L已存在。操作结果:;}StatusListInsert(SqList*L,inti,ElemTypee)//{//初始条件:顺序线性表L已存在,1≤i≤ListLength(L)+1//操
线性表逆置(顺序表)实验报告 来自淘豆网m.daumloan.com转载请标明出处.