python数据结构——顺序表

目录

1. 顺序表的定义

2. 顺序表的优点

3. 顺序表的表现形式

3.1 基本顺序表

 3.2 元素外置顺序表

4. 顺序表的结构与实现

4.1 顺序表的结构

4.2 顺序表的实现

4.2.1 一体式结构

4.2.2 分离式结构

总结:顺序表结构分一体式结构和分离式结构。


1. 顺序表的定义

        数据元素连续存储,并且每个元素的存储空间大小相同,元素下标是逻辑地址,元素的物理地址可通过存储区的起始地址加上逻辑地址和存储单元大小来确定。

2. 顺序表的优点

        由于元素的物理地址可通过存储区的起始地址加上逻辑地址和存储单元大小来确定,因此要访问一个元素不用做遍历操作,只需给定逻辑地址就可是实现访问。

        计算物理地址的公式如下:

 Loc(m_{i})=Loc(m_{0})+c\cdot i

        其中 i 表示逻辑地址,m_{i} 表示第 i 给元素,Loc(m_{0}) 表示存储区的起始地址,c 表示每个元素存储单元的大小。

3. 顺序表的表现形式

        顺序表根据元素存储方式可分为两类:基本顺序表和元素外置顺序表。

3.1 基本顺序表

        当数据元素的大小统一时,则可采取这种存储方式。如C、C++中的数组。示意图如下:

python数据结构——顺序表_第1张图片

 3.2 元素外置顺序表

        当数据元素的大小不统一时,则可采取这种存储方式。如python中的列表等。示意图如下:

python数据结构——顺序表_第2张图片

此时连续内存中不在存储数据元素,而是存储数据元素的地址。访问是通过下标先找到地址,再由地址去访问数据元素,从而实现间接访问。

4. 顺序表的结构与实现

4.1 顺序表的结构

        一个顺序表的完整信息包括两部分,一部分是表中的元素集合,另一部分是为实现正确操作而需记录的信息,即有关表的整体情况的信息,这部分信息主要包括元素存储区的容量和当前表中已有的元素个数两项。如下图所示:

python数据结构——顺序表_第3张图片

4.2 顺序表的实现

        由于顺序表由表头和元素集合组成,根据顺序表的表现形式,顺序表可分为一体式结构和分离式结构。

4.2.1 一体式结构

        由图可以看出存储表信息的单元与元素存储区以连续的方式安排在一块存储区里,两部分数据的整体形成一个完整的顺序表对象。虽然一体式结构整体性强,易于管理。但是由于数据元素存储区域是表对象的一部分,顺序表创建后,元素存储区就固定了,不利于后期的修改操作。

4.2.2 分离式结构

python数据结构——顺序表_第4张图片

        由图可知表对象里只保存与整个表有关的信息(即容量和元素个数),实际数据元素存放在另一个独立的元素存储区里,通过地址与基本表对象关联。当要修改元素时,分离式结构只需修改数据存储区,不会对表对象的地址发生修改。而一体式结构在重新分配内存时表对象的地址会发生改变。

总结:

        顺序表结构分一体式结构和分离式结构。

个人理解,不对支持欢迎指出。

你可能感兴趣的:(python,数据结构)