线性表( List )
零个或多个数据元素的有限序列,各个元素之间是有顺序的;
定义:
将线性表记为( a1,a2,……,ai-1,ai,ai+1,…… ),则ai-1领先ai,……
直接前驱元素:ai-1 为 ai 的直接前驱元素;
直接后继元素:ai+1为 ai 的直接后继元素;
线性表元素的个数 n ,定义为线性表的长度。
每个元素都有特定的位置,ai 是第 i 个元素, i 称为数据元素 ai 在线性表中的位序。
特点:
数据结构分为逻辑结构和物理结构,逻辑结构分为集合结构、线性结构、树形结构和图形结构四大类。物理结构分为顺序存储结构和链式存储结构。我在之前写的《数据结构和算法》中已经介绍过。
1. 线性表是一个序列。
2. 0个元素构成的线性表是空表。
3. 线性表中的第一个元素无前驱,最后一个元素无后继,其他元素有且只有一个前驱和后继。
4. 线性表是有长度的,其长度就是元素个数,且线性表的元素个数是有限的,也就是说,线性表的长度是有限的。
线性表基本操作:
InitList(*L):初始化操作,建立一个空的线性表L。
ListEmpty(L):判断线性表是否为空表,若线性表为空,返回true,否则返回false。
ClearList(*L):将线性表清空。 GetElem(L,i,*e):将线性表L中的第i个位置元素值返回给e。
LocateElem(L,e):在线性表L中查找与给定值e相等的元素,如果查找成功,返回该元素在表中序号表示成功;否则,返回0表示失败。
ListInsert(*L,i,e):在线性表L中第i个位置插入新元素e。
ListDelete(*L,i,*e):删除线性表L中第i个位置元素,并用e返回其值。