实验一 顺序表
实验内容:
一、参考教材,编写顺序表的相关程序(定义,初始化,插入,删除,取值,赋值等等)
二、编写 main 函数,利用已有的函数,构造一个数据元素值依次为 1-50 的顺序表,并逐
个输出,即输出 1,2,3……49,50。
三、编写函数,将表倒序,并在 main 函数中调用,再次输出,也就是输出 50,49,48……
2,1。
四、说明你的倒序程序的时间复杂度是多少?用 O(f(n))表示。
实验报告:一的函数功能介绍,二、三的程序代码,四的计算结果。
附:顺序表参考程序
#include "iostream.h"
#include "stdlib.h"
#define LIST_INIT_SIZE 100//线性表存储空间的初始分配量
#define LISTINCREMENT 10//线性表存储空间的分配增量
#define ElemType int
#define OVERFLOW 1
#define Status bool
#define OK true
#define ERROR false
typedef struct {
ElemType *elem; // 存储空间基址
int length; // 当前长度
int listsize; // 当前分配的存储容量(以 sizeof(ElemType)为单位)
} SqList; // 俗称 顺序表
Status InitList_Sq(SqList& L) { // 构造一个空的线性表 L
L.elem = (ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));//为线性表分配大小为
LIST_INIT_SIZE*sizeof(ElemType)的数组空间
if (!L.elem) exit(OVERFLOW); //存储分配失败
L.length = 0; //空表长度为 0
L.listsize = LIST_INIT_SIZE; //初始存储容量
return OK;
} // InitList_Sq
Status ListInsert_Sq(SqList &L, int i, ElemType e) { // 在顺序表 L 的第 i 个元素之前插入新的