同学们好,欢迎进入陆老师的《数据结构》课堂。
这节课我们来学习第二章线性表的教学目标和第1小节线性表的类型定义。
线性表是最简单也是最常用的一种数据结构类型,本章将分别从线性表的逻辑结构、存储结构、运算及算法以及应用这四个方面来介绍线性表。
本章分四这小节介绍。
2.1 线性表的类型定义
2.2 线性表的顺序表示和实现
2.3 线性表的链式表示和实现
2.3.1 线性链表
2.3.2 循环链表
2.3.3 双向链表
2.4 线性表的应用举例
我们来学习第2章第1节:线性表的类型定义。
一、线性表的逻辑定义
线性表——是n(≥0)个数据元素a1,a2,…an的有限序列;表中每个元素(除第一个和最后一个外),有且仅有一个直接前趋,有且只有一个直接后继。
即线性表或为一个空表(n=0),或者就是n个元素以这样的线性形式排列:
(a1,a2,…, ai-1,ai,ai+1,…,an) (n>0)
这里的n就是线性表中的数据元素个数,称为线性表的长度(简称表长)。
注意:这里的ai只是数据元素的一个抽象符号,其具体含义在不同的情况下可以不同。
例: 26个英文字母组成的字母表
(A,B,C,D,E,F,…,Z)
显然就是一个线性表,只是每个数据元素都是一个字母。在这个字母表中,第一个元素A无直接前趋,最后一个元素Z无直接后续,其余每个元素,有且仅有一个直接前趋,有且只有一个直接后继。比如E,它的直接前趋肯定是D,它的直接后继肯定是F。
再看一个例子:一张学生档案表,它也是一个线性表,只是这里的每个数据元素是由若干个数据项组成的,标识一个学生的信息占据一行,王小林这行就是第1个数据元素a1,第二行就是a2,以此类推。这个档案表实际也是n个元素的一个线性排列,因此也是一个线性表。(a1,a2,…, ai-1,ai,ai+1,…,an)
注意:由若干个数据项组成的数据元素通常也称为记录,
含大量记录的线性表通常也称为文件。
二、线性表的逻辑结构特征
在这里再强调一下线性表的特点,线性表的逻辑结构特征实现上也就是线性结构的基本特征。
对于任何一个非空的线性表,都有下面三个基本特征:
①有且仅有一个起始结点a1(通常称为首元素),它没有直接前趋,但有且仅有一个直接后继a2;
②有且仅有一个终端结点an (通常称为尾元素),它没有直接后继,但有且仅有一个直接前趋an-1;
③其余的内部结点ai(2≤i≤n-1)都有且仅有一个直接前趋ai-1和一个直接后继ai+1。
这三点实际上就是线性结构的:“一对一”的关系!
所以线性表是一种典型的线性结构。




