前言
大家好,作者菌又来了,今天我们开始顺序表的学习,今天的内容十分的简单,就是带领大家简单了解顺序表,那好话不多说,直接开始我们今天的正题!!
1.顺序表的概念和结构
线性表
线性表(linear list) 是n个具有相同性质的数据元素有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串~~
线性表在逻辑结构上是线性结构,也就是说是连续的一条线。但是在屋里结构上并不是一定要连续的,线性表在物理结构上,通常以数组和连式结构的形式存储。
2.顺序表的分类
1.顺序表和数组的区别
顺序表的底层是数组,对数组的封装,实现了常用的增删查改等接口
2.顺序表的分类
静态顺序表
概念:使用定长数组存储元素
静态顺序表的缺陷:空间给少了不够用,给多了会造成空间的浪费
动态顺序表
按需申请
3.动态顺序表的实现
想要实现动态链表我们大概要做的步骤就是这些,这些功能的实现在后面作者菌会为大家详细介绍。
#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);
void SLErase(SL* ps, int pos);
int SLFind(SL* ps, SLDataType x);
好,今天的内容就简单介绍到哲理,咱们下期再见,拜拜