目录
前言
在数据结构中,顺序表是一种基础的数据存储形式。
这篇博客主要介绍顺序表的静态分配存储表示,包括其定义、初始化、插入、删除和遍历等操作。
顺序表的表示和实现
1. 顺序表的静态存储过程
顺序表的静态存储使用固定大小的数组来存储数据元素。我们先定义一个静态顺序表:
// 线性表的静态分配顺序存储结构
#define MaxSize 100
typedef int ElementType;
typedef int Status;
typedef struct {
ElementType data[MaxSize]; // 存储空间基址
int length; // 当前长度
} StaticSqList;
1.1 初始化
初始化时,将表长设置为0。
Status initStaticSqList(StaticSqList *sqList) {
sqList->length = 0;
return 1;
}
1.2 销毁
静态顺序表不需要显式销毁,因为它使用的是固定大小的数组,生命周期由变量作用域决定。
1.3 清空
清空表时,将表长设置为0。
void clearSqList(StaticSqList *sqList) {
sqList->length = 0;
}
1.4 获取表长
获取当前顺序表的长度。
int staticSqListLength(StaticSqList *sqList) {
return sqList->length;
}
1.5 获取数据元素
获取指定位置的数据元素。
Status getElementForStaticSqList(StaticSqList *sqList, int pos, ElementType *element) {
if (pos < 1 || pos > sqList->length)