
2.1 定义
-
L=(a1,a2,a3,...,an)
-
有限个相同数据类型的数据元素的有序序列
-
一些概念
·位序:数据元素在线性表中的位置
·表头:第一个元素a1
·表尾:最后一个元素an
-
一些性质
·除第一个元素外,每个元素有且仅有一个直接前驱 ·除最后一个元素外,每个元素有且仅有一个直接后继
2.2 基本操作
| 函数 | 功能 | 说明 |
|---|---|---|
| InitList(&L) | 初始化 | 构造一个空的线性表L,分配内存空间 |
| DestroyList(&L) | 销毁 | 销毁线性表,并释放内存空间 |
| ClearList(&L) | 清空 | 清空线性表,保留内存空间 |
| Empty(L) | 判空 | 判断线性表是否为空 |
| Length(L) | 求长 | 返回线性表的长度 |
| GetElem(L,i,&e) | 取值 | 返回线性表中第i个元素的值 |
| LocateElem(L,e,compare()) | 查找 | 返回线性表中第一个与e满足compare()的元素的位序 |
| PriorElem(L,cur_e,&pre_e) | 前驱 | 返回线性表中元素cur_e的前驱元素的值 |
| NextElem(L,cur_e,&next_e) | 后继 | 返回线性表中元素cur_e的后继元素的值 |
| ListInsert(&L,i,e) | 插入 | 在线性表的第i个位置插入元素e |
| ListDelete(&L,i,&e) | 删除 | 删除线性表中第i个位置的元素,并返回其值 |
| ListTraverse(L,visit()) | 遍历 | 依次对线性表中每个元素调用visit()函数 |
2.3 顺序表

2.3.1 顺序存储实现线性表
- 静态分配
1 | /* |
- 动态分配
1 | /* |
- 基本操作

1 | /* |
| 按位插入/删除 | ||
|---|---|---|
| 最好 | 尾插 | O(1) |
| 最坏 | 头插 | O(n) |
| 平均 |
|
O(n) |
| 按位查找 | 按值查找 | |
|---|---|---|
| 最好 | O(1) | O(1) |
| 最坏 | O(1) | O(n) |
| 平均 | O(1) | O(n) |