数据结构——顺序存储结构

1、线性表的2种物理结构是什么?

线性表的物理结构包括顺序存储结构和链式存储结构。

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

 

2、描述顺序存储结构有什么属性?

1)存储空间的起始位置:数组data,它的存储位置就是存储空间的存储位置。

2)线性表的最大存储容量:数组长度MaxSize

3)线性表的当前长度:length

 

3、数据长度与线性表长度有什么区别?

1)数组的长度是存放线性表的存储空间的长度,存储分配后这个量是一般是不变的。

2)线性表的长度是线性表中数据元素的个数,随着线性表插人和删除操作的进行,这个量是变化的。

3)在任意时刻,线性表的长度应该小于等于数组的长度。

 

4、线性表的顺序存储结构有什么优缺点?

(1)优点:无须为表示表中元素之间的逻辑关系而增加额外的存储空间可以快速地存取表中任一位置的元素;

(2)插入和删除操作需要移动大量元素当线性表长度变仕较大时,难以确定有储空间的容量造成存储空间的碎片。

 

5、顺序存储结构如何进行插入操作?

1)如果插入位置不合理,抛出异常;

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

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

4)将要插入元素填入位置处;

5)表长加1。

 

6、顺序存储结构如何进行删除操作?

1)如果删除位置不合理,抛出异常;

2)取出删除元素;

3)从删除元素位置开始遍历到最后一个元素位置,分别将它们都向前移动一

个位置;

(3)表长减1

 

7、通过对时间复杂度的推导,可以说明什么?

说明线性表的顺序存储结构,在存、读数据时,不管是哪个位置,时间复杂度都是O[1],而插入或删除时,时间复杂度都是O[n]。这就说明,线性表的顺序存储结构比较适合元素个数不太变化,而更多是存取数据的应用。

 

 

8、地址是什么?地址是如何计算的?

存储器中的每个存储单元都有自己的编号,这个编号称为地址。

C语言中的数组是从0开始第一个下标的,于是线性表的第i个元素是要存储在数组下标为i-1的位置,即数据元素的序号和存放它的数组下标之间存在对应关系。如下图


 

 

 

9、线性表表现出什么特征?

1)集合中必存在唯一的一个“第一元素”;

2)集合中必存在唯一的一个 “最后元素” ;

3)除最后一个元素之外,均有 唯一的后继(后件);

4)除第一个元素之外,均有 唯一的前驱(前件)。

 

10、如何用数学语言定义线性表?

如果用数学语言来进行定义,可如下:

若将线性表记为(a1,…,ai-1,ai,ai+1,…an),则表中ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前驱元素,ai+1是ai的直接后继元素。

线性表元素的个数n(n>=0)定义为线性表的长度,当n=0时,称为空表。

   

 


你可能感兴趣的:(数据结构——顺序存储结构)