第二章 线性表

3.1 线性表可以分为顺序表和链表两种,但它们之间不是绝对对立的。当然,python里的列表list和tuple都是顺序表。

3.1.1 线性表的基本操作

从使用者角度来说:

1.创建线性表(构造操作)

2.检查线性表的长度,是否带有特定的对象等(解析操作)

3.动态增删(调整操作)

4.两个list组合(构造操作)

5.表的遍历(解析操作)

用一个图来表示一个最简单的线性表:

3.2 顺序表

扫描二维码关注公众号,回复: 1652816 查看本文章

顺序表的两种物理结构:1.一体式(表对象的头部‘包含表ID与表的长度等信息’与体部在连续的存储区)2.分离式结构:即不在同一存储区

优缺点:一体式结构:存储管理方便 。分布式结构:当添加元素时,可以寻找新的更大的区块,因为表的对象头的位置ID不变,一体式结构换存储区就会把表的对象ID转移而使计算机无法找到。

这种采用分离式的结构实现的顺序表叫动态顺序表。

3.2.1 python里的list

在python里的list和tuple都是利用的顺序表(保证O(1)的访问速度)和分离式结构(id对象头位置不变,保证可以无限加入新的元素,python采用的是每次等比例扩容1.25倍)实现的动态顺序表。


猜你喜欢

转载自blog.csdn.net/tommy1295/article/details/80673465