您的位置:首页 > 理论基础 > 数据结构算法

数据结构之线性表的顺序存储结构

2017-12-08 22:29 501 查看

线性表的顺序存储结构:

**定义:指的是用一段连续的存储单元一次存储线性表的数据元素



***顺序存储结构封装需要三个属性

*1.存储空间的起始位置,数据data,它的存储位置就是线性表存储空间的存储位置;

*2.线性表的最大存储容量:数组的长度max size;

*3.线性表的当前长度:length;

**数组的长度和线性表的长度需要进行区分:数组的长度是存储线性表的存储空间的总长度,一般初始化后不变,而线性表的长度是线性表中元素的个数,它是会变化的;



地址计算方法:

**假设QG占用的是C个存储单元,那么线性表中地i个元素和地i+1个元素的存储位置 的关系是(LOC表示的是获得存储位置的函数):

LOC(i+1)=LOC(ai)+C;

**第i个元素的位置可以由第一个元素a1推出:

LOC(ai)=[b]LOC(a1)+(i-1)*c;[/b]

[b]*通过该公式我们可以推出线性表中任意元素的位置,我们也称其为随机存储结构;[/b]



[b]插入操作:[/b]

**插入的算法思路:

--如果插入的位置不合理,则抛出异常;

--如果线性表的长度大于等于数组的长度,则抛出异常或者动态增加数组容量;

--从最后一个元素开始向前遍历到第i个位置,分别将他们都向后移动一个位置;

--将要插入的元素填入第i个位置;

--线性表的长度+1;

删除操作:

**删除算法的思路:

--如若删除位置不合理,抛出异常;

--取出所删除的元素;

--从所删除元素的位置开始遍历到最后一个元素的位置,然后分别将他们向前移动一个位置;

综合分析线性表的顺序存储结构的优劣势:

**它适合元素个数比较稳定,不经常进行插入和删除操作,更多的行为是存取数据操作的应用;

-优势:

--不需要为表示表中数据的逻辑关系而额外增加存储空间;

--可以快速存取表中任何位置的元素;

--劣势:

--当我们进行插入和删除操作时需要移动大量的数据,耗费大量时间;

--线性表容量变化较大时难以确定存储空间的容量;

--容易造成空间碎片;





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: