2、线性表
(1)基本概念
- 线性表(linear_list)是最常用且最简单的一种线性数据结构,一个线性表是n个数据元素的有限序列。线性表有两种存储结构:顺序存储(顺序表)、链式存储(链表)。
- 线性结构的特点:存在唯一的一个被称为“第一个”的数据元素、存在唯一一个被称为“最后一个”的数据元素。除第一个之外,每一个数据元素均只有一个前驱;除最后一之外,每一个数据元素均只有一个后继。
- 线性表中元素的个数 n ( n > = 0 ) n(n>=0) n(n>=0)定义线性表的长度, n = 0 n=0 n=0 称为空表。在非空表中的每个数据元素都有一个确定的位置,如 a 1 a_1 a1 是第一个数据元素, a n a_n an 是最后一个数据元素, a i a_i ai 是第 i i i 个数据元素,并称 i i i 为数据元素 a i a_i ai 在线性表中的位序。
(2)线性表的分类与实现
-
顺序表:即线性表的顺序表示。指用一组连续的存储单元依次存储线性表的数据元素。
-
链表:链表,即线性表的链式存储结构,它用一组任意的存储单元存储线性表的数据元素。为了表示每个数据元素 a i a_i ai 与其直接后继元素 a i + 1 a_{i+1} ai+1 之间的逻辑关系,对数据元素 a i a_i ai 而言,除了存储其本身的数据信息之外,还需存储一个指示其直接后继元素的信息(即直接后继的存储位置)。这两部分信息组成数据元素 a i a_i ai 的存储映像,称为结点。结点包括两个域,其中存储数据元素信息的域叫做数据域,存储直接后继存储位置的域叫做指针域。 n n n 个这样的结点链结成一个链表。
-
单链表:当这样的链表中每个结点中只含一个指针域时,称它为单链表。
-
循环链表
-
双链表
-
双向循环链表
具体实现如下链接
(3)线性表的应用
文章参考书籍《数据结构:C语言版/严蔚敏,吴伟民编著.》