线性结构
概念:
线性表简称表,是零个或者多个元素的有穷序列,通常可以表示成k0,k1,…k n-1(n>=1)
表目:线性表中的元素(可包含多个数据项,记录)
索引(下标):称为表目 ki 的“索引” 或 “下标”
表的长度:线性表中所含元素的个数n
空表:长度为0的线性表(n=0)
线性表特点:
- 操作灵活,其长度可以增长,缩短
线性表分类:
-
按复杂程度分:
简单的:线性表,栈,队列,散列表
高级的:广义表,多维数组,文件
-
安访问方式分:
直接访问型
顺序访问型
目录访问型
-
按操作分类:
线性表:
- 所有表目都是同一类型结点的线性表
- 不限制操作形式
- 根据存储不同分为:顺序表,链表
栈:
- 插入和删除的操作都限制在表的同一端进行(因为是先进后出的结构)
队列:
- 插入操作在表的一端,删除操作在另一端。
线性表结构的三个方面:
-
线性表结构的逻辑结构
- 线性表的长度
- 表头(head)
- 表尾(tail)
- 当前位置
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s9sW0SFa-1630657228466)(C:\Users\szy\AppData\Roaming\Typora\typora-user-images\image-20210427180424858.png)]
-
线性表的存储结构
-
顺序表(数组)
– 按索引值从小到大存放在一片相邻的连续区域
– 结构紧凑,存储密度为1
-
链表
需要通过指针连接的关系,来表达我们逻辑的一个序的关系,因此额外的指针存储空间,c存储效率不如顺序表数组。
– 单链表
– 双链表
– 循环链表
-
-
线性表的运算
- 普通不受限制的线性表
- 栈 (在同一端操作):代表算法 DFS 深度优先搜寻
- 队列 (操作在两端进行的) :代表算法 BFS 广度优先搜索
建立线性表
清除线性表
插入一个新元素
删除某个元素
修改某个元素
排序
检索
清除线性表
插入一个新元素
删除某个元素
修改某个元素
排序
检索