归纳
-
线性关系、线性表的定义,线性表的基本操作。
-
线性表的顺序存储结构与链式存储结构(包括单(向)链表、循环链表和双向链表)的构造原理。
-
在以上两种存储结构的基础上对线性表实施的基本操作,包括顺序表的插入与删除、链表的建立、插入与删除、查找等操作对应的算法设计(含递归算法的设计)。
概述
- 线性表的基本概念
- 线性表的顺序存储结构
- 线性表的链式存储结构
- 循环链表及其运算
- 双向链表及其运算
线性表的基本概念
线性表的定义
A = ( a 1 , a 2 , . . . , a n ) A=(a_{1},a_{2},...,a_{n}) A=(a1,a2,...,an)
数据元素之间具有逻辑关系为线性关系的数据元素合集称为线性表,n为线性表的长度,长度为0的线性表称为空表。
e.g:线性表,数组,堆栈,队列,串,文件等
线性关系:
- 当 1 < i < n 1<i<n 1<i<n时, a i a_{i} ai的直接前驱为 a i − 1 a_{i-1} ai−1, a i a_{i} ai的直接后继为 a i + 1 a_{i+1} ai+1
- 除了第一个元素与最后一个元素,序列中任何一个元素有且仅有一个直接前驱元素,有且只有一个直接后继元素
- 数据元素之间的先后顺序为一对一的关系
线性表的基本操作
- 创建一个新的线性表
- 求线性表的长度
- 检索线性表中的第i个数据元素
- 根据数据元素的某个数据项(通常称为关键字)的值,求该数据元素再线性表中的位置
- 在线性表的第i个位置存入一个新的数据元素
- 在线性表的第i个位置插入一个新的数据元素
- 删除线性表中的第i个数据元素
- 对线性表中的数据元素按照某一个数据项的值的大小做升序或者降序排序。
- 销毁一个线性表
- 复制一个线性表
- 按照一定的原则,将两个或两个以上的线性表合并成为一个线性表。
…
线性表的顺序存储结构
线性表顺序存储结构构造原理
用一组地址连续的存储单元依次存储线性表中的数据元素,数据元素之间的逻辑关系通过数据元素的存储位置直接反映。
note:所谓一个元素的地址是指该元素占用的若干连续的存储单元的第一个单元的地址。记为 L O C ( a i ) LOC(a_{i}) LOC(ai)。假设每个数据占用k个存储单元,并且已知第一个元素的存储位置 L O C ( a 1 ) LOC(a_{1}) LOC(a1