文章目录:
考纲分析:
各个学校考纲:
第一章:绪论
第一节:基本概念
1.数据项-数据元素-数据对象
2.数据结构
2.1 逻辑机构【线性结构-集合-树形结构-图形结构】
2.2 物理结构
3.数据的存储结构【顺序存储-链式存储-索引存储-散列存储】
第二节:抽象数据类型
第三节:算法
1.程序和算法
2.算法的概念和特点和设计的基本要求
3.时间复杂度
3.1 概念
3.2 例题
3.3 时间复杂度的计算方法
3.4 常见的渐进时间复杂度有
4.空间复杂度
4.1 概念
4.2 空间复杂度的计算方法
4.3 常见的时间复杂度和空间复杂度
第二章:线性表
数据的逻辑结构分类【线性结构-非线性结构】
第一节:线性表的概述
1.概念
2.定义
3.线性表的基本操作
第二节:线性表的顺序表示
1.线性表的定义
2.顺序表的特点
3.顺序表的基本操作
3.1 顺序表的插入
3.2 顺序表的删除
3.3 顺序表的查找(按值顺序查找)
第三节:线性表的链式表示
1.单链表的定义
2.单链表的结构描述【数据域-指针域】
3.单链表的基本操作
3.1 建立单链表【头插法-尾插法】
3.1.1 采用头插法建立单链表
3.1.2 采用尾插法建立单链表
3.2 单列表的查找【按序号查找-按值查找】
3.2.1 按序号查找结点值
3.2.2 按值查找表结点
4.插入结点操作
5.删除结点操作
6.循环链表
7.双向链表
7.1 定义
7.2 双向链表的插入操作【在p之后插入-在p之前插入】
7.2.1 在p之后插入
7.2.2 在p之前插入
7.3 双向列表的删除操作【删除P的后继S-删除结点P】
7.3.1 删除P的后继S
7.3.2 删除结点P
练习题一:
练习题二:
第三章:栈和队列
第一节:栈(stack)
1.栈的概念
2.栈的顺序存储结构
2.1 顺序栈的实现
2.2 出栈-进栈-栈满-栈空
3.栈的链式存储结构
3.1 概念
3.2链式栈的入栈-出栈
3.2.1 入栈
3.2.2 出栈
第二节:队列(Queue)
1.队列的基本概念
2.队列的顺序存储结构
2.1 概念
2.2 循环队列
2.3 循环队列的基本操作【入队-出队】
3.队列的链式存储
3.1 概念
3.2 出队-入队
第四章:串
第一节:串的概念
第二节:串的存储结构
1.定长顺序串【串连接-求字串-定位函数】
1.2 串连接
1.3 求字串
1.4 定位函数
2.堆分配存储表示【堆串赋值函数-求串长-串比较】
2.1 堆串赋值函数
2.2 求串长
2.3 串比较
3.块链存储表示
第五章:数组和广义表
第一节:数组
1.数组的定义
2.二维数组的地址计算
3.矩阵的压缩存储【对称矩阵-三角矩阵-带状矩阵】
3.1 对称矩阵
3.2 三角矩阵
3.3 带状矩阵
4.稀疏矩阵
4.1 定义概念
4.2 稀疏矩阵的存储概念【三元顺序表-十字链表】
4.2.1 三元顺序表
4.2.2 十字链表
第二节:广义表
1.概念
2.广义表的两个基本操作【取广义表表头-取广义表表尾】
3.广义表的链式存储
练习题三:
第六章:树与二叉树
第一节:树的基本概念
1.树的定义
2.树的基本术语
3.树的性质
第二节:二叉树
1.定义概念
2.二叉树的存储结构【顺序存储-链式存储】
2.1 顺序存储
2.2 链式存储
3.二叉树的遍历【先序遍历递归算法-中序遍历递归算法-后序遍历递归算法】
3.1 概念
3.2 先序遍历递归算法
3.3 中序遍历递归算法
3.4 后序遍历递归算法
4.遍历的非递归算法
中序遍历非递归算法
第三节:线索二叉树
1.概念
2.线索化二叉树
3.画出线索二叉树
第四节:树及其转换
1.树的存储结构【双亲表示法-孩子表示法-孩子兄弟表示法】
1.1 双亲表示法
1.2 孩子表示法
1.3 孩子兄弟表示法
2.树和二叉树的转换
3.森林与二叉树的转换
第五节:树与二叉树的运用
1.二叉排序树
1.1 定义
1.2 二叉排序树的建立
1.3 二叉排序树的查找
2.平衡二叉树
2.1 平衡因子和平衡二叉树(AVL树)
2.2 构造平衡二叉树
2.2.1 定义
2.2.2 构造平衡二叉树的方法
第六节:哈夫曼树
1.定义
2.哈夫曼树的构造
3.哈夫曼编码
第七章:图
第一节:图的基本概念
1.图的定义
2.无向图
3.有向图
4.完全图
5.顶点的度、入度、出度
6.子图
7.连通图、连通分量
8.强连通图、强连通分量
9.生成树
10.带权图和网
11.稠密网、稠密图
第二节:图的存储【邻阶矩阵-邻接表】
1.邻阶矩阵
1.1 定义
1.2 特点
2.邻接表
2.1 定义
2.2 特点
3.图的遍历【深度优先遍历(DFS)-广度优先遍历(BFS)】
3.1 深度优先遍历(DFS)
3.1.1 定义
3.1.2 算法
3.2 广度优先遍历(BFS)
3.2.1 定义
3.2.2 算法
第三节:最小生成树
1.定义
2.性质
3.最小生成树构造算法【Prim算法-Kruskal算法】
3.1Prim算法
3.2 Kruskal算法
第四节:拓扑排序
第五节:最短路径
1.概念
2.关键路径
3.求最短路径的算法
3.1 迪杰斯特算法(Dijkstra)
3.2 弗洛伊德算法(Floyd)
习题六:
第八章:查找
1.基本概念
2.各种查找算法
2.1 顺序查找
2.2 折半查找
2.3 分块查找(索引顺序查找)
2.4 哈希表的查找(Hash Table)
3.冲突[ 开放定址法-链地址法-装填因子]
3.1 开放定址法
3.1.1 线性探查法
3.1.2 二次探测法
3.1.3 双重散列法
3. 2 链地址法
3.3 装填因子
第九章:排序
第一节:排序的基础知识
第二节:各种排序算法
1.插入排序
1.1 直接插入排序
1.2 希尔排序
2.交换排序
2.1 冒泡排序
2.2 快速排序
3.选择排序
3.1 简单选择排序
3.2 堆排序【小顶堆 -大顶堆】
3.2.1 小顶堆
3.2.2 大顶堆
4.归并排序
5.基数排序(桶排序/数字排序)
第三节:各种排序方法的比较
练习题七:
练习题八:
练习题九:
考纲分析: 各个学校考纲:西华大学不考:串,数组,广义表【第四章-第五章】
第一章:绪论第一节:基本概念 1.数据项-数据元素-数据对象 2.数据结构 2.1 逻辑机构【线性结构-集合-树形结构-图形结构】2.2 物理结构 3.数据的存储结构【顺序存储-链式存储-索引存储-散列存储】
第二节:抽象数据类型 第三节:算法 1.程序和算法 2.算法的概念和特点和设计的基本要求 3.时间复杂度 3.1 概念 3.2 例题 3.3 时间复杂度的计算方法
3.4 常见的渐进时间复杂度有 4.空间复杂度 4.1 概念 4.2 空间复杂度的计算方法 4.3 常见的时间复杂度和空间复杂度 第二章:线性表 数据的逻辑结构分类【线性结构-非线性结构】 第一节:线性表的概述 1.概念 2.定义 3.线性表的基本操作 第二节:线性表的顺序表示 1.线性表的定义 2.顺序表的特点 3.顺序表的基本操作 3.1 顺序表的插入 3.2 顺序表的删除 3.3 顺序表的查找(按值顺序查找) 第三节:线性表的链式表示 1.单链表的定义 2.单链表的结构描述【数据域-指针域】 3.单链表的基本操作 3.1 建立单链表【头插法-尾插法】 3.1.1 采用头插法建立单链表 3.1.2 采用尾插法建立单链表 3.2 单列表的查找【按序号查找-按值查找】 3.2.1 按序号查找结点值 3.2.2 按值查找表结点 4.插入结点操作 5.删除结点操作 6.循环链表 7.双向链表 7.1 定义 7.2 双向链表的插入操作【在p之后插入-在p之前插入】 7.2.1 在p之后插入 7.2.2 在p之前插入 7.3 双向列表的删除操作【删除P的后继S-删除结点P】 7.3.1 删除P的后继S 7.3.2 删除结点P 练习题一: 练习题二:
第三章:栈和队列第一节:栈(stack) 1.栈的概念 2.栈的顺序存储结构 2.1 顺序栈的实现 2.2 出栈-进栈-栈满-栈空 3.栈的链式存储结构 3.1 概念 3.2链式栈的入栈-出栈 3.2.1 入栈 3.2.2 出栈 第二节:队列(Queue) 1.队列的基本概念 2.队列的顺序存储结构 2.1 概念 2.2 循环队列 2.3 循环队列的基本操作【入队-出队】 3.队列的链式存储 3.1 概念 3.2 出队-入队 第四章:串第一节:串的概念 第二节:串的存储结构 1.定长顺序串【串连接-求字串-定位函数】 1.2 串连接 1.3 求字串 1.4 定位函数
2.堆分配存储表示【堆串赋值函数-求串长-串比较】
2.1 堆串赋值函数 2.2 求串长 2.3 串比较 3.块链存储表示 第五章:数组和广义表第一节:数组 1.数组的定义 2.二维数组的地址计算 3.矩阵的压缩存储【对称矩阵-三角矩阵-带状矩阵】 3.1 对称矩阵 3.2 三角矩阵 3.3 带状矩阵 4.稀疏矩阵 4.1 定义概念 4.2 稀疏矩阵的存储概念【三元顺序表-十字链表】 4.2.1 三元顺序表 4.2.2 十字链表 第二节:广义表 1.概念 2.广义表的两个基本操作【取广义表表头-取广义表表尾】 3.广义表的链式存储 练习题三: 第六章:树与二叉树第一节:树的基本概念 1.树的定义 2.树的基本术语 3.树的性质 第二节:二叉树 1.定义概念
2.二叉树的存储结构【顺序存储-链式存储】 2.1 顺序存储 2.2 链式存储 3.二叉树的遍历【先序遍历递归算法-中序遍历递归算法-后序遍历递归算法】 3.1 概念 3.2 先序遍历递归算法 3.3 中序遍历递归算法 3.4 后序遍历递归算法 4.遍历的非递归算法 中序遍历非递归算法 第三节:线索二叉树 1.概念 2.线索化二叉树 3.画出线索二叉树
第四节:树及其转换 1.树的存储结构【双亲表示法-孩子表示法-孩子兄弟表示法】 1.1 双亲表示法 1.2 孩子表示法 1.3 孩子兄弟表示法 2.树和二叉树的转换 3.森林与二叉树的转换 第五节:树与二叉树的运用 1.二叉排序树 1.1 定义
1.2 二叉排序树的建立 1.3 二叉排序树的查找 2.平衡二叉树 2.1 平衡因子和平衡二叉树(AVL树) 2.2 构造平衡二叉树 2.2.1 定义 2.2.2 构造平衡二叉树的方法 第六节:哈夫曼树 1.定义
2.哈夫曼树的构造 3.哈夫曼编码 第七章:图第一节:图的基本概念 1.图的定义 2.无向图 3.有向图 4.完全图 5.顶点的度、入度、出度 6.子图 7.连通图、连通分量
8.强连通图、强连通分量 9.生成树 10.带权图和网 11.稠密网、稠密图 第二节:图的存储【邻阶矩阵-邻接表】 1.邻阶矩阵 1.1 定义 1.2 特点 2.邻接表 2.1 定义
2.2 特点 3.图的遍历【深度优先遍历(DFS)-广度优先遍历(BFS)】 3.1 深度优先遍历(DFS) 3.1.1 定义 3.1.2 算法 3.2 广度优先遍历(BFS) 3.2.1 定义 3.2.2 算法 第三节:最小生成树 1.定义 2.性质 3.最小生成树构造算法【Prim算法-Kruskal算法】 3.1Prim算法 3.2 Kruskal算法 第四节:拓扑排序 第五节:最短路径 1.概念 2.关键路径
3.求最短路径的算法 3.1 迪杰斯特算法(Dijkstra) 3.2 弗洛伊德算法(Floyd) 习题六: 第八章:查找1.基本概念 2.各种查找算法 2.1 顺序查找 2.2 折半查找 2.3 分块查找(索引顺序查找)
2.4 哈希表的查找(Hash Table)
3.冲突[ 开放定址法-链地址法-装填因子] 3.1 开放定址法 3.1.1 线性探查法 3.1.2 二次探测法 3.1.3 双重散列法 3. 2 链地址法
3.3 装填因子 第九章:排序第一节:排序的基础知识 第二节:各种排序算法 1.插入排序 1.1 直接插入排序 1.2 希尔排序 2.交换排序 2.1 冒泡排序 2.2 快速排序 3.选择排序 3.1 简单选择排序 3.2 堆排序【小顶堆 -大顶堆】 3.2.1 小顶堆 3.2.2 大顶堆 4.归并排序 5.基数排序(桶排序/数字排序) 第三节:各种排序方法的比较
两两组合
简单查一下希尔这个人
冒泡比较快
简单选择就是一堆
最后归为垃圾
练习题七: 练习题八:练习题九: