一、线性结构
线性结构是最简单、最常用的一种数据结构。
特点是:在数据元素的非空有限集合中,除第一个元素没有直接前驱、最后一个元素没有直接后继外,
集合中其余的每个数据元素均有唯一的直接前驱和唯一的直接后继。
二、线性表的概念
线性表是由n(n>=0)个类型相同的数据元素组成的有限序列,记作(a1,a2,a3......an)。线性表中元素的个数n被定义为线性表的长度,n = 0时被称为空表。
一个数据元素可由若干数据项组成,例如:在学籍表中,每个学生的信息由姓名、学号、性别等数据项组成。
数据元素可以是原子类型,也可以是结构类型。
相邻数据元素之间存在着序偶关系,即对于非空的线性表,表中ai-1领先于ai,称ai-1为ai的直接前驱,ai为ai-1的直接后继。
当n>0时,除第一个数据元素没有直接前驱、最有一个元素没有直接后继外,其余的每个元素都有且仅有一个直接前驱和一个直接后继,数据元素之间具有一对一的关系。
特点:
(1)同一性:线性表由同种数据类型的数据元素组成
(2)有穷性:线性表由有限个数据元素组成
(3)有序性:线性表中相邻元素之间存在着序偶关系
三、线性表的抽象数据类型定义
(1)InitList(L)
将线性表L初始化为空表
(2)ListLength(L)
如果线性表L为空表则返回0,否则返回线性表的长度
(3)GetData(L,i)
返回线性表L中的第i个元素的值
(4)InsList(L,i,e)
在线性表L中的第i个元素的位置插入新的数据元素e,L的长度加1
(5)DelList(L,i,e)
删除线性表L中的第i个数据元素,并用e返回其值,L的长度减1
(6)Locate(L,e)
如果线性表L中存在数据元素e,则将当前指针指向数据元素e所在位置并返回TRUE,否则返回FALSE
(7)DestroyList(L)
将线性表L销毁
(8)ClearList(L)
将线性表L置为空表
(9)EmptyList(L)
如果线性表L为空表则返回TRUE,否则返回FALSE