一、什么是线性表
顾名思义,元素之间排队连成一线,每个元素最多只有一个前继和一个后继元素。
二、线性表储存结构与优缺点
顺序存储:如数组Array,容器Vector,在内存中表现为连续一段内存。优点是,查找通过下标完成,随机存取具有较高的效率。缺点是,在创建的时候开辟固定的内存空间,扩容需要将元素复制到一段新的内存。插入需要将插入位置后面的元素都往后移动。
链式存储:链表,不需要开始就扩容,每个元素保存有数据域(保存数据)和指针域(保存前和后两个元素的地址)。优点是,不需要知道具体开辟的内存大小,通过地址指向前后元素。缺点是,查找需要通过遍历查找,性能较差。
存储结构 | 插入和删除 | 查找 | 扩容 |
顺序存储 | 将操作元素位置后面的元素往前或者后复制 | 通过下标查找 | 开辟新的内存空间,将所有元素进行复制 |
链式存储 | 直接插入,改变当前元素和前后元素的指针域指向地址 | 需要从头结点遍历查找 | 不需要扩容 |
三、线性表使用场景
在知道具体数据,然后需要重复查找的情况下使用顺序存储,查找效率比较高。
需要经常添加数据,而查找次数比较少的情况下使用链式存储,插入效率较高。