一、线性表及顺序表概念
1.线性表的概念;
线性表是零个或多个具有相同特性的数据元素组成的有限序列,线性表是实际中,广泛使用的一种数据结构,相关的有:顺序表,链表,栈,队列,串...
线性表在逻辑上是线性结构,也就是一条连续的线,在物理结构上并不一定是连续的,线性表中以物理结构上连续的有两类:顺序表,线性表。
顺序表:
链表:
2.顺序表的概念;
顺序表是一段地址连续的存储单位依次存放线性表的数据元素,顺序表有两种,一种是静态的,一种是动态的。
3.顺序表的分类;
静态的顺序表:是给定一个长度一定的数组,数据元素在数组上存储;优点是,开辟空间方便,缺点是,数组大小给小了不够用,给大了造成空间浪费。
动态的顺序表:可根据需要,进行合理的扩容,实际中,动态顺序表往往比静态顺序表更好利用些,所以下面的各接口,都以动态顺序表为主。(其实除了在创建、初始化,扩容顺序表有所差异外,其它的近似)
二、顺序表的功能接口实现
1.顺序表的基础功能;
(形参设置,p表示顺序表的指针,x表示要插入顺序表的元素,k表示要处理的顺序表的位置)
顺序表的初始化:
顺序表的检查+扩容:
顺序表的打印:
顺序表的销毁:
2.顺序表的核心功能;
顺序表的任意插入:
顺序表的尾插:
顺序表的头插:
顺序表的任意删除:
顺序表的尾删:
顺序表的头删:
顺序表的查找元素的索引:
顺序表的由索引查找元素:
顺序表的数据的修改
3.顺序表的附加功能;
附加功能就不实现了,
三、顺序表总结
为了方便你们对顺序表进行验证,和更深刻的理解,我会将所有的代码放在一起,你们可通过此链接或者完整的源代码;
线性表之【顺序表】的实现/线性表之【顺序表】的实现 · 残风也想永存/C语言项目 - 码云 - 开源中国 (gitee.com)