目录
前言
数据结构的学习,仅做为学习记录,原视频为B站《王道计算机考研 数据结构》。
1. 数据结构的基本概念
1.1 数据元素、数据项:
数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。
一个数据元素可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位。
1.2 数据对象
数据对象是具有相同性质的数据元素的集合,是数据的一个子集。
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
链式存储。逻辑上相邻的元素在物理位置上可以不相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系。可以用指针表示下一个数据元素的存储地址。
索引存储。在存储元素信息的同时,还建立附加的索引表。索引表中的每项称为索引项,索引项有的一般形式如关键字和地址。
散列存储。根据元素的关键字直接计算出该元素的存储地址,又称哈希(Hash)存储。
- 若采用顺序存储,则各个数据元素在物理上必须是连续的;若采用非顺序存储,则各个数据元素在物理上可以是离散的。
- 数据的存储结构会影响存储空间分配的方便程度。
- 数据的存储结构会影响对数据运算的速度。
CreateList(SqList &L,int n) 参数:顺序表L,顺序表长度n 功能:创建长度为的顺序表 时间复杂度:O(n)
InitList(SqList &L) 参数:顺序表L 功能:初始化 时间复杂度:O(1)
InsertList(SqList &L,int i,ElemType e) 参数:顺序表L,位置i,元素e 功能:位置i处插入元素e 时间复杂度:O(n)
ListDelete(SqList &L,int i) 参数:顺序表L,位置i 功能:删除位置i处元素 时间复杂度:O(n)
LocateElem(SqList L,ElemType e) 参数:顺序表L,元素e 功能:返回第一个等于e的元素的位置 时间复杂度:O(n)
Reverse(SqList &L) 参数:顺序表L 倒置函数 将原顺序表直接倒置
PrintList(SqList L) 参数:顺序表L 功能:遍历L,并输出
SplitSort(SqList &L) 参数:顺序表L 功能:分开奇偶,并分开排序 ClearList(SqList &L) 参数:顺序表L 功能:清空顺序表
2.2 顺序表
2.3 单链表
2.3.1 单链表的定义
2.3.2 单链表的使用
2.3.2.1 单链表的插入删除
2.3.2.2 单链表的查找
2.3.2.3 单链表的建立
2.3.3 双链表
2.3.4 循环链表
2.3.5 静态链表
3 栈和队列
3.1 栈
3.1.1 栈的基本操作
3.1.2 栈的链式存储实现
3.2 队列
3.2.1 队列的基本概念
3.2.2 队列的顺序实现
3.2.3 队列的链式实现
3.2.4 双端队列
3.3 栈的应用
3.3.1 栈在括号匹配中的应用
3.3.2 栈在表达式求值中的应用(上)
3.3.2 栈在表达式求值中的应用(下)
3.3.2 栈在递归中的应用
3.3.3 队列的应用
3.4 特殊矩阵的压缩存储
4 串
4.1 串的定义和基本操作
4.1.1 串的定义
4.1.2 串的存储结构
4.2 字符串匹配算法
4.2.1 朴素模式匹配算法
4.2.2 KMP算法
4.2.3 求Nextval数组
5 树
5.1 树的基本概念
5.1.1 树的定义
5.1.2 树的性质
5.2 二叉树
5.2.1 二叉树的定义和基本概念
5.2.2 二叉树的性质
5.2.3 二叉树的存储结构
5.3 二叉树的遍历
5.3.1 二叉树的先/中/后序遍历
5.3.2 二叉树的层序遍历
5.3.3 由遍历序列构成二叉树
5.3.4 线索二叉树的概念