实验 2:动态顺序表的实现
• 要求:
1. 熟练掌握使用菜单编写程序
2. 熟练掌握动态顺序表的存储结构
3. 复习 typedef、动态存储分配等 C 语法
4. 掌握动态顺序表的基本操作
5. 理解各个算法的时间复杂度
• 动态顺序表功能
1. 初始化一个动态顺序表(空表)
2. 输入 n 个元素(创建有 n 个元素的线性表)
3. 输出顺序表
4. 插入给定值 e 到指定位序 i
5. 删除指定位序 i 的元素,并保存到 e
6. 查找等于(或大于,或小于)给定值的第一个元素的位序
0. 结束
• 预编译命令与数据结构
#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define ERROR 0
#define OVERFLOW -2 //请注意,以上 5 行预编译命令在所有实验都加
#define LIST_INIT_SIZE 10 //表存储空间的初始分配量
#define LISTINCREMENT 2 //线性表存储空间的分配增量
typedef int Status; //返回值为符号常量 OK ERROR 等时函数类型
typedef int ElemType;
typedef struct
{
ElemType *elem; // 存储空间基址
int length; // 当前长度
int listsize; // 当前分配的存储容量(以 sizeof(ElemType)为单位)
} SqList;
• 函数首部
Status InitList_Sq(SqList &L);
Status CreatList_Sq(SqList &L,int n);
void PrintList_Sq(SqList L);