- 线性表的定义:线性表是一个具有n(n>=0)个数据元素的线性关系有限序列。元素的个数为线性表的长度,当n=0时,线性表为空表,用一对空括号表示;当n!=0时,线性表可以表示为(a1,a2,a3,…an),a1为表头元素,an为表尾元素,an-1是an的直接前驱,an+1是an的直接后继。
- 线性表的数据元素:可以为一个数,也可以为一个符号或者复杂数据类型,但同一个线性表中的元素必须具有相同的特性。
- 例如:线性表1:字母表(a,b,c…z)线性表2:数字表 (2,5,9,1,0)线性表2:线性表中数据元素为复杂类型的表 新生报道表
- 线性表的逻辑结构:线性表的逻辑结构为线性结构,元素之间是一对一的关系。
- 数组 & 链表 之前的绪论部分我们已经谈到链式存储结构的定义,即不要求逻辑上相邻的元素在物理层面也相邻,顾名思义就是利用链表存储数据,它用附加指针表示节点间的逻辑关系。
数组优点:
- 随机访问,通过索引访问数组数据,由于是连续的内存空间,所以支持随机访问,通过下标随机访问的时间复杂度是 O (1)。
- 查找快,可以通过数组的所以快速定位到要查找的数据
- 支持动态扩容,当我们开始预定义数组的长度是 10,当数组存储了 10 个数据后,我们继续添加第 11 个数据的时候,我们就需要重新分配一块更大的空间,将原来的数据复制过去,然后再将新的数据插入
数组缺点:
- 插入、删除数据慢
|