严蔚敏《数据结构》(C语言版)【教材精讲+考研真题解析】讲义与视频课程【36小时高清视频】
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第2章 线性表[视频讲解]

2.1 线性表的类型定义

视频二维码(扫码观看)

一、线性表的定义

线性表(Linear List):是由n(n≥0)个数据元素(结点)a1,a2,…,an组成的有限序列。该序列中的所有结点具有相同的数据类型。其中数据元素的个数n称为线性表的长度。

当n=0时,称为空表。当n>0时,将非空的线性表记作:(a1,a2,…,an)。

a1称为线性表的第一个(首)结点,an称为线性表的最后一个(尾)结点。a1,a2,…,ai1都是ai(2≤i≤n)的前驱,其中ai1是ai的直接前驱;ai1,ai2,…,an都是ai(1≤i≤n-1)的后继,其中ai1是ai的直接后继。

二、线性表的逻辑结构

线性表中的数据元素ai所代表的具体含义随具体应用的不同而不同,在线性表的定义中,ai只不过是一个抽象的表示符号。

线性表中的结点可以是单值元素(每个元素只有一个数据项)。

【例1】26个英文字母组成的字母表:(A,B,C、…、Z)

【例2】某校从1978年到1983年各种型号的计算机拥有量的变化情况:(6,17,28,50,92,188)

【例3】一副扑克的点数:(2,3,4,…,J,Q,K,A)

线性表中的结点可以是记录型元素,每个元素含有多个数据项,每个项称为结点的一个域。每个元素有一个可以唯一标识每个结点的数据项组,称为关键字。

【例4】某校2001级同学的基本情况:{(‘2001414101’,‘张里户’,‘男’,06/24/1983),(‘2001414102’,‘张化司’,‘男’,08/12/1984),…,(‘2001414102’,‘李利辣’,‘女’,08/12/1984)}。

若线性表中的结点是按值(或按关键字值)由小到大(或由大到小)排列的,称线性表是有序的。

线性表是一种相当灵活的数据结构,其长度可根据需要增长或缩短。

对线性表的数据元素可进行访问、插入和删除操作。

三、线性表的抽象数据类型定义

【例5】假设:有两个集合A和B分别用两个线性表LA和LB表示,即:线性表中的数据元素即为集合中的成员。现要求一个新的集合A=A∪B。要求对线性表作如下操作:扩大线性表LA,将存在于LB中而不存在于LA中的数据元素插入到LA中去。

操作步骤:

1.从线性表LB中依次查看每个数据元素;

2.依值在线性表LA中进行查访;

3.若不存在,则插入之。

若线性表中的数据元素相互之间可以比较,并且数据元素在线性表中依值非递减或非递增有序排列,即ai≥ai1或ai≤ai1(i=2,3,…,n),则称该线性表为有序表(Ordered List)。

【例6】假设:LA=(3,5,8,11),LB=(2,6,8,9,11,15,20)。对集合LA和LB而言,值相同的数据元素必定相邻。

要求生成一个新表LC,使LC中的数据元素仍按值非递减有有序排列。