数据结构——课堂笔记【上课重点知识截图】

文章目录:

考纲分析:

各个学校考纲:


第一章:绪论

第一节:基本概念 

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.基数排序(桶排序/数字排序)


第三节:各种排序方法的比较

两两组合

 

简单查一下希尔这个人

冒泡比较快

简单选择就是一堆

最后归为垃圾


练习题七:


练习题八:

 


练习题九:

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘鑫磊up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值