数据结构之线性表的顺序存储结构
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;
删除操作:
**删除算法的思路:
--如若删除位置不合理,抛出异常;
--取出所删除的元素;
--从所删除元素的位置开始遍历到最后一个元素的位置,然后分别将他们向前移动一个位置;
综合分析线性表的顺序存储结构的优劣势:
**它适合元素个数比较稳定,不经常进行插入和删除操作,更多的行为是存取数据操作的应用;
-优势:
--不需要为表示表中数据的逻辑关系而额外增加存储空间;
--可以快速存取表中任何位置的元素;
--劣势:
--当我们进行插入和删除操作时需要移动大量的数据,耗费大量时间;
--线性表容量变化较大时难以确定存储空间的容量;
--容易造成空间碎片;
相关文章推荐
- 线性表数据结构解读(一)顺序存储结构ArrayList
- C语言 数据结构 线性表 顺序表 线性表的顺序存储结构
- 数据结构之线性表之顺序存储结构(3)
- 数据结构一一线性表的顺序存储结构之插入操作
- 数据结构——线性表的顺序存储结构
- 线性表顺序存储结构实现(线性表-数据结构作业)
- 数据结构之线性表—>顺序存储结构
- 数据结构与算法_1:线性表顺序存储结构常见操作
- 数据结构(严蔚敏、吴伟民)——读书笔记-2、 线性表及其基本运算、顺序存储结构
- 数据结构一 线性表的顺序存储结构
- 数据结构(一):线性表的顺序存储结构-顺序表的实现
- 数据结构(二):线性表包括顺序存储结构(顺序表、顺序队列和顺序栈)和链式存储结构(链表、链队列和链栈)
- 数据结构之线性表的顺序存储结构
- 【数据结构基础】线性表的顺序存储结构
- 数据结构之线性表――顺序存储结构(php代码实现)
- 数据结构之线性表的顺序存储结构(数组)的插入与删除
- 数据结构(3)之线性表之顺序存储结构
- 数据结构基础:线性表的应用(1)
- 数据结构基础温故-1.线性表(下)
- 数据结构实验之图书馆借书线性表的顺序和链式存取结构的应用