2.1 线性表的定义和基本操作
2.1.1 线性表的定义
线性表是具有相同数据类型的
式中,
由此, 我们得出线性表的特点如下:
表中元素的个数有限。
表中元素具有逻辑上的顺序性, 表中元素有其先后次序。
表中元素都是数据元素, 每个元素都是单个元素。
表中元素的数据类型都相同, 这意味着每个元素占有相同大小的存储空间。
表中元素具有抽象性, 即仅讨论元素间的逻辑关系, 而不考虑元素究竟表示什么内容。
注 意
线性表是一种逻辑结构, 表示元素之间一对一的相邻关系。顺序表和链表是指存储结构, 两者属于不同层面的概念, 因此不要将其混淆。
2.1.2 线性表的基本操作
一个数据结构的基本操作是指其最核心、最基本的操作。其他较复杂的操作可通过调用其基本操作来实现。线性表的主要操作如下。
InitList(&L)
: 初始化表。构造一个空的线性表。Length(L)
: 求表长。返回线性表 L 的长度, 即 L 中数据元素的个数。LocateElem(L, e)
: 按值查找操作。在表 L 中查找具有给定关键字值的元素。GetElem(L, i)
: 按位查找操作。获取表 L 中第 i 个位置的元素的值。ListInsert(&L, i, e)
: 插入操作。在表 L 中的第 i 个位置上插入指定元素 e 。ListDelete(&L, i, e)
: 删除操作。删除表 L 中第 i 个位置的元素,并用 e 返回删除元素的值。PrintList(L)
: 输出操作。按前后顺序输出线性表 L 的所有元素值。Empty(L)
: 判空操作。若 L 为空表, 则返回true
, 否则返回false
。DestroyList(&L)
: 销毁操作。销毁线性表, 并释放线性表 L 所占用的内存空间。
注 意
①基本操作的实现取决于采用哪种存储结构, 存储结构不同, 算法的实现也不同。②符号 “&” 表示 C++ 语言中的引用调用,在 C 语言中采用指针也可达到同样的效果。