目录
1.顺序表
1.1顺序表的概念及结构
线性表
线性表( linear list )是n个具有相同特性的数据元素的有限序列。 线性表是⼀种在实际中⼴泛使⽤的数据结构,常⻅的线性表:顺序表、链表、栈、队列、字符串...线性表在逻辑上是线性结构,也就说是连续的⼀条直线。但是在物理结构上并不⼀定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。案例:蔬菜分为绿叶类、⽠类、菌菇类。
2、顺序表分类
2.1顺序表和数组的区别
顺序表的底层结构是数组,对数组的封装,实现了常⽤的增删改查等接⼝
-
静态顺序表
struct SeqList
{
int arr[100];//定长数组
int size;//顺序表当前的数据个数
};
概念:使用定长数组存放元素
缺陷:空间给少了不够⽤,给多了造成空间浪费
-
动态顺序表
struct SeqList
{
int *arr;
int size;//有效的数据个数
int capacity;//空间大小
};
因为数组并不是定长的,可根据实际数据大小进行动态申请空间,随着数据的增加,也可进行动态增容。
3.顺序表的实现
分成三个文件实现:
SeqList.h
SeqList.c
test.c
3.1初始化
首先在SeqList.h创建好顺序表的结构
typedef int SLDataType;//顺序表存放的类型可能是int 也可能是char,
所有重新起个名字,方便以后更改
//动态顺序表
typedef struct SeqList
{
SLDataType* arr;
int size;//有效数据个数
int capacity;//空间大小
}SL;