Bob Lee
2 min readSep 8, 2020

--

数据结构(一):线性表

线性表分两种:顺序表 AND 链表

顺序表特征:1⃣️存放数据时候物理地址必须连续存放2⃣️如果存储空间不够了,需要动态的改变存储数据区。

  • 按元素类型不同可以分为元素外置(右)和元素内置(左)

区别:元素内置存储的是列表里的每个元素,且数据类型相同,例如都是int。而元素外置存储的是列表里每个元素的地址,优势在于可以存储不同的数据类型,比如右图int和var的混合。但本质上都是线性表,因为可以通过简单的线性的关系找到指定的元素

  • 按形式分可以分为一体式(左)和分离式(右)表头信息+数据区组成了顺序表,表头信息包含了max和容量

区别:

  1. 一体式的优势在于读取数据可以一次性读取,因为表头的物理地址和数据区物理地址是连续的,而分离式需要间接读取数据,多了一次计算
  2. 一体式弊病显而易见,例如现在已经向系统申请4个数据的容量,当我放入5个数据的时候原先的容量不够用,系统做的事是把所有数据清空,然后从新申请可以存放5和数据的容量空间同时继续保持连续存储。表头地址会变化,从0X15变为新的0X523
  3. 分离式存储着数据区地址,当新的数据加入,直接将地址更新即可,而list本身的表头地址是保持不变的0X111。python运用的是分离式,支持空列表的不断append

--

--