线性表类型定义和操作
线性表是一种最简单的线性结构,它是一种抽象数据类型(Abstract Data Type,ADT),由数据对象、数据关系和基本操作三部分组成。在本节中,我们将详细介绍线性表的类型定义和操作。
**线性表的类型定义**
线性表的类型定义是指对线性表的抽象描述,它包括数据对象、数据关系和基本操作三个部分。
**数据对象**
数据对象是指线性表中的元素集合,记为D={ai|ai∈ElemSet,i=1,2,…,n,n≥0},其中n是线性表的长度,当n=0时,线性表为空表。
**数据关系**
数据关系是指线性表中元素之间的关系,记为R1={<ai-1,ai>|ai-1,ai∈D,i=2,…,n},其中i是ai在线性表中的位序。
**基本操作**
基本操作是指对线性表进行操作的基本方法,包括结构初始化操作、结构销毁操作、引用型操作和加工型操作。
**结构初始化操作**
结构初始化操作是指对线性表进行初始化的操作,记为InitList(&L),其操作结果是构造一个空的线性表L。
**结构销毁操作**
结构销毁操作是指对线性表进行销毁的操作,记为DestroyList(&L),其操作结果是销毁线性表L。
**引用型操作**
引用型操作是指对线性表进行查询和访问的操作,包括线性表判空、求线性表的长度、求数据元素的前驱、求数据元素的后继、获取数据元素等操作。
* 判空操作:ListEmpty(L),其操作结果是若L为空表,则返回TRUE,否则返回FALSE。
* 求长度操作:ListLength(L),其操作结果是返回L中元素个数。
* 求前驱操作:PriorElem(L,cur_e,&pre_e),其操作结果是若cur_e是L的元素,但不是第一个,则用pre_e返回它的前驱,否则操作失败,pre_e无定义。
* 求后继操作:NextElem(L,cur_e,&next_e),其操作结果是若cur_e是L的元素,但不是最后一个,则用next_e返回它的后继,否则操作失败,next_e无定义。
* 获取元素操作:GetElem(L,i,&e),其操作结果是返回L中第i个元素e。
线性表是一种简单的线性结构,它的类型定义包括数据对象、数据关系和基本操作三个部分,而基本操作包括结构初始化操作、结构销毁操作、引用型操作和加工型操作。