数据结构是计算机存储、组织数据的方式,数组是一个最基础的数据结构。
顺序表的概念及结构
顺序表的底层是数组,顺序表是在数组的基础上进行维护和封装,提供了很多现成的方法。
线性表是n个具有相同特征的数据元素的有限序列,顺序表是线性表的一种。线性表在物理结构上不一定连续,在逻辑结构上是连续的,顺序表在物理结构和逻辑结构上都是连续的。
顺序表分类
sequence 顺序的
静态顺序表
// 静态顺序表的定义
typedef int SLDataType;
#define N 7
typedef struct SeqLsit {
SLDataType arr[N]; //静态顺序表的底层是定长的数组
int size;//顺序表当前有效的数据个数(申请了N个空间不一定存放了N个数据)
}SL;
静态顺序表缺陷:空间少了不够用,空间多了浪费
动态顺序表
//动态顺序表的定义
typedef int SLDataType;//VS中虽然有一键替换功能,但是在只需要部分替换时可能出现错误
typedef struct SeqList {
SLDataType* arr;
int size;
int capacity;//数组可能需要不断增容,记录空间大小
}SL;
实现项目
头文件相当于目录
顺序表的初始化
修改后
调试
最终代码
顺序表的销毁
顺序表的增删查改操作
尾插
调试
capacity为0,没有空间插入数据,所以得先保证当前有空间能够插入数据
修改后