[TOC]
### 线性表定义
![](https://box.kancloud.cn/2016-09-06_57ce462c3c9f1.JPG)
* 第一个元素只有一个后继;
* 最后一个元素只有一个前驱;
* 中间元素有且只有一个后继和一个前驱;
我们把这样的结构,叫做线性表。即数据的位置关系是线性的。
**线性表是最简单的一种内存数据结构,但它却说明的数据结构研究的中心:即数据在内存中的存放方式,最多研究的是存放地址之间的关系。因为前驱和后继是通过地址指向实现的。**
### 顺序表和链表存储结构对比
通过不同的物理结构实现相同的逻辑结构。
> **顺序表的哲学思想是通过物理结构上的相邻来表示数据的逻辑结构,这样的好处是如果我们知道基址和偏移量就可以访问某一个具体的元素而忽略了该元素的真正地址。编译器恰恰可以为我们做到这一点。而链表却通过物理结构的地址指向来表示逻辑结构,这样的好处是数据在物理存储上不必连续,但我们必须通过元素之间的具体关系来访问某一个元素,即如果你想找到某一个元素,是不能使用偏移量,而只能通过按次访问的方式来寻找,编译器可以翻译数组下标,但无法翻译链式地址之间的关系,所以,只能人工维护。但链表为我们提供了一种思路:可以通过数据地址来使数据产生关系。**