二、 线性表
1. 线性表的定义和基本操作
1. 线性表的定义
除第一个元素外,每个元素有且仅有一个直接前驱。除最后一个元素外,每个元素有且仅有一个直接后继。
- 线性表是一种逻辑结构
- 顺序表和链表是指存储结构
2. 线性表的基本操作
InitList(&L); // 初始化表
Length(L); // 求表长
LocateElem(L, e); // 按值查找操作
GetElem(L, i); // 按位查找操作
ListInsert(&L, i, e); // 插入操作
ListDelete(&L, i, &e); // 删除操作
PrintList(L); // 输出操作
Empty(L); // 判空操作
DestroyList(&L); // 销毁操作
2. 线性表的顺序表示
1. 顺序表的定义
2. 顺序表上基本操作的实现
3. 线性表的链式表示
1. 单链表的定义
2. 单链表上基本操作的实现
- 采用头插法建立单链表
- 采用尾插法建立单链表
- 按序号查找结点值
- 按值查找表结点
- 插入结点操作
- 删除结点操作
- 求表长操作
3. 双链表
- 双链表的插入操作
- 双链表的删除操作
4. 循环链表
- 循环单链表
- 循环双链表
5. 静态链表
6. 顺序表和链表的比较
- 存取方式
- 逻辑结构与物理结构
- 查找、插入和删除操作
- 空间分配
实际中如何选取?
- 基于存储的考虑
- 基于运算的考虑
- 基于环境的考虑