线性表的存储结构分为顺序存储和链式存储
顺序存储
指用一组地址连续的存储单元依次存储线性表中的数据元素,从而使得逻辑上相邻的两个数据元素在物理位置上也相邻。
用例:数组
优点:能随机存储线性表中的任意一个结点
缺点:①数组的大小通常是固定的,不利于随意增加或减少线性表中的结点个数
②插入和删除线性表中的结点时,要移动数组中的其他元素,操作复杂
在顺序存储线性表中,增加一个元素,需要移动元素的个数为n/2;删除一个元素,需要移动元素的个数为:(n-1)/2
链式存储
指用链表存储线性表
最简单的单向链表,就是从链表的第一个结点开始,将线性表中的结点依次存储到链表的结点中。在链表的结点中不但要存储线性表结点的信息,还要用一个域存储后续结点的指针。
链表结点的结构
数据域 + 指针域
优点:线性表中每个结点的实际存储位置是任意的,插入和删除结点十分方便,只要改变相关结点的后续指针即可完成插入和删除操作 。
缺点:①每个结点增加了一个后续指针成分,增加了存储空间
②不便访问线性表中的任意结点