顺序表专题
所需的基础知识:结构体、指针、动态内存开辟
顺序表底层就是数组
只用数组就会很麻烦,所以有了顺序表
顺序表是线性表的一种
线性表:
物理结构:不一定连续
逻辑结构:一定连续
顺序表:
物理结构:连续的
逻辑结构:一定连续的
两种顺序表
哪种更好?
静态顺序表重点在定长数组,这个长度不知道如何确定
可能不够,可能浪费
动态顺序表可以增容,更加灵活
两种重命名结构体变量名的方法
typedef struct SeqList SeqList;
typedef struct SeqList
{
SLDataType* arr;
int size;//有效数据个数
int capacity;//空间大小变量
}sl;//后面直接取名字
#define INIT_CAPACITY 4
typedef int SLDataType;
// 动态顺序表 -- 按需申请
typedef struct SeqList
{
SLDataType* a;
int size; // 有效数据个数
int capacity; // 空间容量
}SL;
//初始化和销毁
void SLInit(SL* ps);
void SLDestroy(SL* ps);
void SLPrint(SL* ps);
//扩容
void SLCheckCapacity(SL* ps);
//头部插⼊删除 / 尾部插⼊删除
void SLPushBack(SL* ps, SLDataType x);
void SLPopBack(SL* ps);
void SLPushFront(SL* ps, SLDataType x);
void SLPopFront(SL* ps);
//指定位置之前插⼊/删除数据
void SLInsert(SL* ps, int pos, SLDataType x);
int SLFind(SL* ps, SLDataType x);
画图解释一下尾插
本篇只介绍思路,具体代码去gitte,查找2024_6_4的代码
链接如下:
https://gitee.com/Put_my_head_down/c-language.git