顺序表实验报告

顺序表实验报告
顺序表实验报告

顺序表实验报告

计算机与信息技术学院综合性、设计性实验报告

课程名称数据结构指导教师李四

学号姓名16083240XX 张三

项目名称顺序表结构的操作实验类型综合性/设计性

实验时间2017.09.26 实验地点216机房

一、实验目的

(1)熟悉顺序表的创建、取值、查找、插入、删除等算法,模块化程序设计方法。

二、实验仪器或设备

(1)硬件设备:CPU为Pentium 4以上的计算机,内存2G以上

(2)配置软件:Microsoft Windows 7与VC++6.0

三、总体设计(设计原理、设计方案及流程等)

设计原理:顺序表的存储结构的特点是在逻辑上相邻的数据元素,其物理次序也是相邻的。

设计方案:采用模块化设计的方法,设计各个程序段,最终通过主函数实现各个程序的各个功能。设计时,需要考虑用户输入非法数值,所以要在程序中写入可以处理非法数值的代码。

设计流程:

1.引入所需的头文件;

2.定义状态值;

3.写入顺序表的各种操作的代码;

4.写入主函数,分别调用各个函数。在调用函数时,采用if结构进行判

断输入值是否非法,从而执行相应的程序。

四、实验步骤(包括主要步骤、代码分析等)

#include // EOF(=^Z或F6),NULL

#include // srand( ) ,rand( ),exit(n)

#include // malloc( ),alloc( ),realloc( )等

#include // INT_MAX等

#include

#include

#include //

floor(),ceil( ),abs( )

#include // cout,cin

#include // clock( ),CLK_TCK,clock_t

#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 ElemType;

#define MAXSIZE 100 //最大长

typedef struct

{

E lemType *elem; //指向数据元素的基地址

int length; //线性表的当前长度

} SqList;

//初始化线性表

算法步骤:

1.为顺序表L动态分配一个预定义大小的数组空间,使elem指向这做段空间的基地址。

2.将表的当前长度设为0。

Status InitList_Sq(SqList &L)

{ //构造一个空的顺序表L

L.elem=new ElemType[MAXSIZE]; //为顺序表分配空间

if(!L.elem) exit(OVERFLOW); //存储分配失败

p rintf("空顺序表创建成功!\n");

L.length=0; //空表长度为0

return OK;

}

//取值

算法步骤:

1.判断指定的位置序号i值是否合理(1≤i

≤L.length),若不合理,则返回ERROR。

2.若i值合理,则将第i个数据元素L.elem[i-1]赋给参数e,通过e返回第i

个数据元素的传值。

Status GetElem_Sq(SqList L, int i, ElemType &e)

{

i f (i<1||i>L.length) return ERROR; //判断i值是否合理,若不合理,返回ERROR e=L.elem[i-1]; //第i-1的单

元存储着第i个数据

return OK;

}

//查找

算法步骤:

1.从前一个元素起,依次和e相比较,若找

到与e相等的元素L.elem[i],则查找成功,

相关主题
相关文档
最新文档