线性表的定义:
存在唯一一个“第一个”元素
存在唯一一个“最后一个”元素
除第一个元素外,每一个元素都有且只有一个前驱
除最后一个元素外,每个元素都有且只有一个后继
一、线性表顺序存储结构(顺序表)
0.线性表的基本概念
线性表强调元素在逻辑上紧密相邻,所以首先想到用数组存储。但是普通数组有着无法克服的容量限制,在不知道输入有多少的情况下,很难确定出一个合适的容量。对此,一个较好的解决方案就是使用动态数组。首先用malloc申请一块拥有指定初始容量的内存,这块内存用作存储线性表元素,当录入的内容不断增加,以至于超出了初始容量时,就用malloc扩展内存容量,这样就做到了既不浪费内存,又可以让线性表容量随输入的增加而自适应大小。如下
优点:
- 存储密度大(结点本身所占存储量/结点结构所占存 储量)
- 可以随机存取表中任一元素
缺点:
- 在插入、删除某一元素时,需要移动大量元素
- 浪费存储空间
- 属于静态存储形式,数据元素的个数不能自由扩充