1.线性表的逻辑结构特性是指数据元素之间存在着线性关系,在计算机中表示这种关系的两类不同的存储结构是顺序存储结构(顺序表)和链式存储结构(链表)。
2.对于顺序表,元素存储的相邻位置反应出其逻辑上的线性关系,可以借助数组来表示。给定数组的下标,就可以存取相应的元素,叫随机存取结构。
对于链表,主要是依靠指针来反应其线性逻辑关系的,链表节点的存取都要从头指针开始,顺链而行,所以不属于随机存取结构,可以叫顺序存取结构。
不同的特点使得顺序表和链表有不同的适用情况,以下可供参考:
比较项目:空间
存储空间:顺序表是预先分配,会出现空间闲置或溢出现象;链表是动态分配,不会出现存储空间闲置或者溢出现象!
存储密度:顺序表不用为表示结点间的逻辑关系而增加额外的存储开销,存储密度等于1;链表需要借助指针体现元素之间的逻辑关系,存储密度小于1
比较项目:时间
存取元素:顺序表是随机存取,按位置访问元素的时间复杂度为O(1);链表是顺序存取,按位置访问元素时间复杂度为O(n)
插入、删除:顺序表平移移动约表中一半元素,时间复杂度为O(n),链表不需要移动元素,确定插入,删除位置后,时间复杂度为O(1)
比较项目:适用情况
1.顺序表表长变化不大,且能事先确定变化的范围2.很少进行插入或者删除操作,经常按元素位置序号访问数据元素;链表的长度变化较大,频繁进行插入或者删除操作!