实验一:线性表逆置(顺序表)实验报告
问题的描述:
实现顺序表的逆置算法
数据结构的设计:
顺序表是线性表的顺序存储形式,因此设计如下数据类型表示线性表:
typedef struct
{
ElemType *elem; /* 存储空间基址*/
int length; /* 当前长度*/
int listsize; /* 当前分配的存储容量(以sizeof(ElemType)为单位) */
}SqList;
函数功能、参数说明及概要设计:
InitList(SqList *L)
功能说明:实现顺序表L的初始化
算法设计:为顺序表分配一块大小为LIST_INIT_SIZE的储存空间
ListLength(SqList L)
功能说明:返回顺序表L长度
算法设计:返回顺序表中的length变量
ListInsert(SqList *L,int i,ElemType e)
功能说明:将元素e插入到顺序表L中的第i个节点
算法设计:判断顺序表是否已满,已满则加空间,未满则继续,将元素e插入到第i个元素之前,并将后面的元素依次往后移
ListTraverse(SqList L,void(*vi)(ElemType*))
功能说明:依次对L的每个数据元素调用函数vi()
算法设计:依次对L的每个数据元素调用函数vi()
Exchange(SqList *L)
功能说明:实现顺序表L的逆置
算法设计:用for循环将顺序表L中的第i个元素依次与第(i+length)个元素交换
print(ElemType *c)
功能说明:打印元素c
算法设计:打印元素c
2.
具体程序的实现
/* 程序名*/
#include<>
#include<>
#include<> /* malloc()等*/
#include<> /* INT_MAX等*/
#include<> /* EOF(=^Z或F6),NULL */
#include<> /* atoi() */
#include<> /* eof() */
#include<> /* floor(),ceil(),abs() */
#include<> /* exit() */
/* 函数结果状态代码*/
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
/* #define OVERFLOW -2 ,故去掉此行*/
typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等*/
typedef int Boolean; /* Boolean是布尔类型,其值是TRUE或FALSE */
typedef int ElemTy
线性表逆置(顺序表)实验报告 来自淘豆网m.daumloan.com转载请标明出处.