【数据结构】是指数据元素的集合及元素间的相互关系和构造方法。P99
元素之间的相互关系是数据的【逻辑结构】。P99
数据元素及元素之间关系的存储称为【存储结构】(或【物理结构】)。P99
数据结构按照【逻辑关系】的不同分为【线性结构】和【非线性结构】两大类。P99
【非线性结构】又可分为【树】结构和【图】结构。P99
3.1 线性结构
3.1.1 线性表
1.线性表的定义
2.线性表的存储结构
线性表的存储结构分为【顺序】存储和【链式】存储。P100
3.1.2 栈和队列
1.栈
1)栈的定义及基本运算
2)栈的存储结构
2.队列
1)队列的定义及基本运算
2)队列的存储结构
3.1.3 串
1.串的定义及基本运算
1)串的定义
2)串的几个基本概念
3)串的基本操作
2.串的存储结构
3.串的模式匹配
1)朴素的模式匹配算法
【朴素】的模式匹配算法也称为布鲁特—福斯算法。P110
2)改进的模式匹配算法
【改进】的模式匹配算法又称为【KMP】算法。P111
3.2 数组、矩阵和广义表
3.2.1 数组
1.数组的定义及基本运算
1)数组的定义
2)数组的两个基本运算
2.数组的顺序存储
3.2.2 矩阵
1.特殊矩阵
若矩阵中元素(或非0元素)的分布有一定的规律,则称之为【特殊】矩阵。P115
常见的特殊矩阵有【对称】矩阵、【三角】矩阵和【对角】矩阵等。P115
2.稀疏矩阵
在一个矩阵中,若非0元素的个数远远少于0元素的个数,且非0元素的分布没有规律,则称之为【稀疏】矩阵。P116
稀疏矩阵的三元组表的顺序存储结构称为【三元组顺序表】,常用的三元组表的链式存储结构是【十字】链表。P116
3.2.3 广义表
广义表的【长】度是指广义表中元素的【个数】。P117
广义表的【深】度是指广义表展开后所含的括号的【最大层数】。P117
1.广义表的基本操作
2.广义表的特点
3.广义表的存储结构
3.3 树
3.3.1 树与二叉树的定义
1.树的定义
2.树的基本概念
3.二叉树的定义
3.3.2 二叉树的性质与存储结构
1.二叉树的性质
2.二叉树的存储结构
1) 二叉树的顺序存储结构
2) 二叉树的链式存储结构
3.3.3 二叉树的遍历
按照先遍历左子树后遍历右子树的约定,根据访问根结点位置的不同,可得到二叉树的【先序】、【中序】和【后序】3种遍历方法。此外,对二叉树还可进行【层序】遍历。P122
3.3.4 线索二叉树
1.线索二叉树的定义
2.建立线索二叉树
3.访问线索二叉树
3.3.5 最优二叉树
1.最优二叉树
【最优二叉树】又称为【哈夫曼树】,它是一类带权路径长度最短的树。P126
2.哈夫曼编码
3.3.6 树和森林
1.树的存储结构
常用的树的存储有【双亲】表示法、【孩子】表示法和【孩子兄弟】表示法。P130
2.树和森林的遍历
1)树的遍历
2)森林的遍历
3. 树、森林和二叉树之间的相互转换
树、森林转换成二叉树
二叉树转换为树和森林
3.4 图
3.4.1 图的定义与存储
1.图的定义
在图中,数据【元素】用【顶点】表示,数据元素之间的【关系】用【边】表示。P134
2.图的存储结构
图的基本存储结构有【邻接矩阵】表示法和【邻接链表】表示法两种。P135
1)邻接矩阵表示法
2)邻接链表表示法
3.4.2 图的遍历
【深度】优先搜索和【广度】优先搜索是两种遍历图的基本方法。P138
1.深度优先搜索(Depth First Search,DFS)
2.广度优先搜索(Breadth First Search,BFS)
3.4.3 生成树及最小生成树
1.生成树的概念
2.最小生成树
常用的最小生成树求解算法有【普里姆】(Prim)算法和【克鲁斯卡尔】(Kruskal)算法。P141
3.4.4 拓扑排序和关键路径
1.AOV网
在有向图中,若以顶点表示活动,用有向边表示活动之间的优先关系,则称这样的有向图为以顶点表示活动的网(【AOV】网)。P143
不存在回路的有向图称为【有向无环图】,或【DAG】图。P143
2.拓扑排序及其算法
3.AOE网
4.关键路径和关键活动
3.4.5 最短路径
1.单源点最短路径
2.每对顶点间的最短路径
3.5 查找
3.5.1 查找的基本概念
1. 基本概念
2. 平均
3.5.2 静态查找表的查找方法
1.顺序查找
2.折半查找
3.分块查找
3.5.3 动态查找表
1.二叉排序树
1)二叉排序树的定义
2)二叉排序树的查找过程
3)在二叉排序树中插入结点的操作
4)在二叉排序树中删除结点的操作
2.平衡二叉树
1)平衡二叉树上的插入操作
2)平衡二叉树上的删除操作
3.B_树
3.5.4 哈希表
1.哈希表的定义
2.哈希函数的构造方法
常用的哈希函数构造方法有【直接定址】法、【数字分析】法、【平方取中】法、【折叠】法、【随机数】法和【除留余数】法等。P162
3.处理冲突的方法
哈希表常见的处理冲突的方法有:【开放定址法】、【链地址法】、【再哈希法】、【建立一个公共溢出区】。P162
3.6 排序
3.6.1 排序的基本概念
【内部】排序指待排序记录全部存放在内存中进行排序的过程。P165
【外部】排序指待排序记录的数量很大,以至于内存不能容纳全部记录,在排序过程中尚需对外存进行访问的排序过程。P165
3.6.2 简单排序
1.直接插入排序
2.冒泡排序
3.简单选择排序
3.6.3 希尔排序
【希尔】排序又称为“【缩小增量】排序”,它是对【直接插入】排序方法的改进。P168
3.6.4 快速排序
3.6.5 堆排序
3.6.6 归并排序
3.6.7 基数排序
3.6.8 内部排序方法小结
3.6.9 外部排序
常用的外部排序方法是【归并】排序。P176