线性表
线性表定义
前言
线性表: 零个和多个数据元素的有限序列!
在《大话数据结构》书中提到,一个幼儿园班级从身高小到大,一个跟着一个排队,有一个打头,有一个收尾。小朋友都知道他前面一个是谁,后面一个是谁,如同一根线把他们串起来,就可以称为线性表。
以上是《大话数据结构》书中解释。
Hare在举一个例子:
我们的吃的冰糖葫芦,一个串一个,有一个糖葫芦在签子尖打头,有最后一个在签子末尾,一个排一个位置固定。
注意
线性表强调,元素之间有顺序,多个元素则第一个无前驱,最后一个无后继。其他元素有且只有一个前驱和后继!而且上述两个例子都表示元素是有限的 这也是《大话数据结构》中强调说明的一点!
需要正确理解有序一词: 我认为它不是说元素本身按照从大到小[5,4,3,2,1]/从小到大[1,2,3,4,5]的排序的有序,而是说每个元素的前后顺序是固定的。回到之前说的一个知道后继一个知道前驱
逻辑上的有序,就算元素不是存储连续内存地址,但在逻辑上任然是有序的前后关系(需细细品味)
线性表顺序存储结构
顺序存储结构是线性表的第一种物理存储结构,用一段地址连续的存储单元依次存储线性表的数据元素。
线性表的存储示意图:
描述顺序结构
接着我们分析下描述顺序存储结构所需要的数据:
- 上述描述线性表是有限的,顺序存储结构则有限。so 我们定义最大的存储长度Maxsize(数组的最大存储长度)。
- 线性表的长度 length,这个就是元素的长度,随着增删而变化。
- 存储空间起始位置: 数组data的第一个内存地址,也就是数组下标0的位置data[0]。