定义(逻辑结构)
线性表是具有相同数据类型的n个数据元素的有限序列,其中n为表长,当n=0时线性表是一个空表。若用L表示线性表,则一般表示为
几个概念:
a_i表示线性表中第i个元素的位序;(程序中下标从零开始)
a_0表示线性表的表头元素;
a_n表示线性表的表尾元素;
除第一个元素外,每个元素有且仅有一个直接前驱;除最后一个元素外,每个元素有且仅有一个直接后继
值得注意的特性
数据元素同类型、有限、有序
重要术语
- 表长、空表
- 表头、表尾
- 前驱、后继
- 数据元素的位序(从1开始)
抽象数据类型描述
ADT List{
数据对象:D = {a_i|};
数据关系;
基本操作;
}
基本运算
创销、增删改查
InitList(&L):初始化。分配内存空间
DestoryList(&L):销毁。释放内存空间
ListInsert(&L,i,e):插入
ListDelete(&L,i,e):删除
LocateElem(L,e):按值查找
GetElem(L,i):按位查找
判空、判长、打印输出
Length(L):求长
PrintList(L):打印长度
Empty(L):判空
其它值得注意的点
- 什么时候要传入参数的引用‘&’ ——需要对List内部修改时
- 函数命名的可读性
试题
- 以下( )是一个线性表。
A. 由n个实数组成的集合
B. 由100个字符组成的序列
C. 所有整数组成的序列
D. 邻接表
答案
- B
线性表定义的要求为:相同数据类型、有限序列。A没有前驱后继关系,C不是有限的,D属于存储结构,线性表是一种逻辑结构。