顺序存储:
(2)、线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
即:线性表逻辑上相邻、物理也相邻(逻辑与物理统一:相邻数据元素的存放地址也相邻),则已知第一个元素首地址和每个元素所占字节数,则可求出任一个元素首地址。
a、 插入和删除运算不方便,需移动大量元素。
(1)优点:
1、 顺序表适宜于做查找这样的静态操作; 链表宜于做插入、删除这样的动态操作。
2、若线性表的长度变化不大,且其主要操作是查找,则采用顺序表;
若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。
线性表的顺序表:指的是用一组地址连续的存储单元,依次存储线性表的数据元素。
1.基本特征:
(1)、线性表中的所有元素所占的存储空间是连续的(即要求内存中可用存储单元的地址必须是连续的)。(2)、线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
即:线性表逻辑上相邻、物理也相邻(逻辑与物理统一:相邻数据元素的存放地址也相邻),则已知第一个元素首地址和每个元素所占字节数,则可求出任一个元素首地址。
2,优缺点:
(1)优点:
a、 无须为表示结点间的逻辑关系而增加额外的存储空间。
b、 可以方便的随机存取表中的任一结点。
c、 存储密度大(=1),存储空间利用率高。
(2) 缺点:a、 插入和删除运算不方便,需移动大量元素。
b、 由于要求占用连续的存储空间,存储分配只能按最大存储空间预先进行,致使存储空间不能得到充分利用。
c、 表的容量难以扩充。
链表存储:线性表的链式存储:指用一组任意的存储单元存储线性表中的数据元素。
1.基本特征:链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针。
(1)优点:
a、 插入、删除操作很方便,可通过修改结点的指针实现,无须移动元素。
b、 方便扩充存储空间。
(2)缺点:
a、 不能随机存取元素。
b、 存储密度小(<1),存储空间利用率低。
总结:1、 顺序表适宜于做查找这样的静态操作; 链表宜于做插入、删除这样的动态操作。
2、若线性表的长度变化不大,且其主要操作是查找,则采用顺序表;
若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。