线性表的顺序存储结构

线性表有两种物理存储结构:顺序存储结构和链式存储结构。

线性存储结构:指的是用一段地址连续的存储单元依次存储线性表的数据元素。

线性表{a1,a2,a3,a4,a5.....an}的顺序存储如下:

顺序存储结构

物理上的存储方式事实上就是在内存中找个初始地址,然后通过占位的形式,把一定的内存空间给占了,然后相同类型的数据元素依次放在这块空地中。

地址计算方法:

线性表中每个元素占据的空间为c,那么第n个元素的位置为:loc(ai)=loc(a1) + (i-1)*c;

注意:这里的i是从1开始的。

通过这个公式,我们可以随时计算出线性表中任意位置的地址,不管它是第一个还是最后一个,都是相同的时间,那么它的存储时间性能为O(1),我们通常称为随机存储结构。


线性表的顺序存储结构_第1张图片
线性表的存储结构

线性表的j结构封装需要三个属性:

1.存储空间的其实位置;

2.线性表的最大存储容量;

3.线性表的当前长度;

注意:线性表的位置是从1开始的,和数组不一样。

线性表的顺序存储结构,在存,读数据时,不管是那个位置,时间复杂度都是O(1).而在插入和删除时,时间复杂度都是O(n).

这就说明,它比较适合元素个数比较稳定,不经常插入和删除元素,而更多的的操作是存储数据的应用。

优点:

无须为表示中间元素的逻辑关系而增加额外的存储空间;

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

缺点:

插入和删除需要移动大量的元素;

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

容易造成存储空间的碎片(因为申请空间时是一整块一整块的进行申请)。

你可能感兴趣的:(线性表的顺序存储结构)