数据结构与算法

文章目录

P1 数据

1.1 专业术语

1.1.1 数据

数据是所有能输入到计算机并能被计算机程序处理的符号总称

1.1.2 数据元素

数据元素是数据基本单位在这里插入图片描述

1.1.3 数据项

数据项是数据元素最小单位在这里插入图片描述

1.1.4 数据对象

数据对象是指性质相同数据元素集合

1.1.5 数据类型(int、char)

数据类型是一个值的集合与定义在此值集合上的一些操作的总称在这里插入图片描述

1.1.6 抽象数据类型(ADT)

通常用(数据对象、数据关系、基本操作)这样的三元组来表示抽象数据类型
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 数据结构

在这里插入图片描述
在这里插入图片描述

1.3 算法

在这里插入图片描述

1.3.1 算法的5个重要特性

在这里插入图片描述
(5)算法是有穷的,程序是无穷的

1.3.2 算法设计要求

在这里插入图片描述
在这里插入图片描述

1.3.3 算法的时间复杂度

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3.3.1 复杂度练习

在这里插入图片描述
在这里插入图片描述

1.3.4空间复杂度

在这里插入图片描述

1.3.4.1练习

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.4 存储结构

在这里插入图片描述

1.4.1 链式存储

在这里插入图片描述

1.4.2索引存储

在这里插入图片描述

1.4.3 散列存储(哈希存储)

在这里插入图片描述

P2

本章导图

在这里插入图片描述

2.ADD 线性表

2.ADD.1 定义

在这里插入图片描述

2.ADD.2 基本操作

在这里插入图片描述

&符号的解释
在这里插入图片描述
C++中&符号
在这里插入图片描述

2.1 顺序表

在这里插入图片描述
在这里插入图片描述

2.ADD.1 顺序表的实现

在这里插入图片描述在这里插入图片描述
malloc函数动态分配数组,free释放内存

2.ADD.1.2 动态分配

在这里插入图片描述
在这里插入图片描述

2.ADD.3 特点

在这里插入图片描述

2.1.1 顺序表的优缺点

在这里插入图片描述

2.1.2 顺序表的操作

在这里插入图片描述

2.1.2.1 顺序表的按位查找

在这里插入图片描述

2.1.3 课堂练习

在这里插入图片描述

2.2 单链表

在这里插入图片描述

2.2.1 单链表的相关知识

在这里插入图片描述

2.2.2 循环单链表

在这里插入图片描述
在这里插入图片描述

2.2.3 单链表的操作

指针是存放内存地址的变量

2.2.3.1 插入

在这里插入图片描述
实现
在这里插入图片描述
时间复杂度
在这里插入图片描述

2.2.3.2 删除

在这里插入图片描述在这里插入图片描述在这里插入图片描述

2.2.3.3 修改、查找

在这里插入图片描述

2.2.3.4 优缺点

在这里插入图片描述

2.2.3.5 练习

在这里插入图片描述

2.3 双链表

在这里插入图片描述

2.3.1 双链表的操作

在这里插入图片描述

2.3.2 双链表课堂练习

在这里插入图片描述

2.4 循环双链表

跟循环单链表类似

在这里插入图片描述

2.5 静态链表

在这里插入图片描述

2.5.1 静态链表增、删、改、查

在这里插入图片描述

2.5.2 静态链表——课堂练习

在这里插入图片描述

P3

思维导图

在这里插入图片描述

3.1栈

在这里插入图片描述

3.1.1 栈的基础操作

在这里插入图片描述

3.1.2 栈的课堂练习

在这里插入图片描述
在这里插入图片描述

3.2 共享栈

在这里插入图片描述
在这里插入图片描述

3.2.1 共享栈----练习


栈满 top1+1=top2

3.3 链栈

在这里插入图片描述
在这里插入图片描述

3.3.1链栈——课堂练习

在这里插入图片描述

3.4 顺序栈和链栈的比较

在这里插入图片描述

3.5 栈的应用

前缀、后缀

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.5.1 栈的应用——习题

在这里插入图片描述
在这里插入图片描述

P4

4.1 队列

在这里插入图片描述

4.1.1 循环队列

在这里插入图片描述
在这里插入图片描述

4.1.2 循环队列——练习

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2 双端队列

(B)在这里插入图片描述
在这里插入图片描述

4.3 链队

在这里插入图片描述
链队——练习
在这里插入图片描述

4.4 循环队列与链式队列的比较

在这里插入图片描述

4.4.1 队列的应用

在这里插入图片描述

P5

5.1 思维导图

在这里插入图片描述

5.2 矩阵

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.2.1 对称矩阵

下三角K,求法

在这里插入图片描述
在这里插入图片描述

上三角K,求法

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

5.2.2 三角矩阵

在这里插入图片描述

5.2.2.1 课堂练习

在这里插入图片描述在这里插入图片描述

5.2.3 三对角矩阵

三对角矩阵:像个猫爪在这里插入图片描述在这里插入图片描述

5.2.3.1 三对角矩阵——课堂练习

在这里插入图片描述

5.2.4 稀疏矩阵

在这里插入图片描述

5.2.4.1 稀疏矩阵——习题

在这里插入图片描述

ijvalue
i1j1
i2j2

P6

6.1 思维导图

在这里插入图片描述

6.2 树的基本术语

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

6.3 基本的二叉树

在这里插入图片描述
在这里插入图片描述

6.4 二叉树的存储结构

在这里插入图片描述

6.5 二叉树的基本性质

在这里插入图片描述>1. 树中的节点数等于所有节点的度数加 1
性质 1 其实非常好理解,如果是以层次的方式看待树,那么根节点的度,就等于第二层的节点数,第二层节点的度数之和,就等于第三层的节点数,以此类推。那么从第一层开始的每层节点度数和就等于从第二层开始的节点数之和,换言之,只是少了根节点。在这里插入图片描述

在这里插入图片描述在这里插入图片描述

6.6 二叉树的遍历

1、先、中、后、层次遍历。
2、根在哪儿,就是什么序

在这里插入图片描述在这里插入图片描述
2( D)
在这里插入图片描述

P7

7.1 思维导图

在这里插入图片描述

7.2 线索二叉树

7.2.1 练习

在这里插入图片描述
在这里插入图片描述

7.3 树的存储方式

7.3.1 双亲表示法

在这里插入图片描述在这里插入图片描述

7.3.2 孩子表示法

在这里插入图片描述
在这里插入图片描述

7.3.3 孩子兄弟表示法(二叉树表示法)

在这里插入图片描述
考试采用如下画法!! !
在这里插入图片描述

7.3.4 二叉树转换成森林

在这里插入图片描述
在这里插入图片描述

7.4 树和森林的遍历

二叉树的便利(根在哪就是什么遍历):先序(根左右)、后序(左右根)、中序(左根右)

树和森林的遍历:先根遍历(先序遍历);后根遍历(中序遍历)

在这里插入图片描述
在这里插入图片描述

7.5 二叉排序树

7.5.1 二叉排序树的插入

在这里插入图片描述
在这里插入图片描述

7.5.2 二叉排序树的删除

在这里插入图片描述
在这里插入图片描述

7.5.3 二叉排序树的查找

在这里插入图片描述
在这里插入图片描述

7.5.3.1 二叉排序树——课堂练习

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

P8 平衡二叉树

在这里插入图片描述

8.1 平衡二叉树——课堂练习

在这里插入图片描述
在这里插入图片描述

8.1 平衡二叉排序树的插入

8.1.1 左左平衡旋转

在这里插入图片描述
在这里插入图片描述

8.1.2 右右平衡旋转

在这里插入图片描述
在这里插入图片描述

8.1.3 左右平衡旋转


在这里插入图片描述

8.1.4 平衡二叉树的插入——课堂练习

在这里插入图片描 述
在这里插入图片描述

8.2 哈夫曼树

在这里插入图片描述
在这里插入图片描述

8.2.1 哈夫曼编码

在这里插入图片描述
在这里插入图片描述

8.2.2 哈夫曼树—— 课堂练习

在这里插入图片描述
在这里插入图片描述

P9 图

9.1 图的专业术语

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.2 图结构的存储

9.2.1 邻接矩阵

在这里插入图片描述
在这里插入图片描述

9.2.1.1 邻接矩阵——练习

在这里插入图片描述
在这里插入图片描述

9.2.2 邻接表

在这里插入图片描述
在这里插入图片描述

9.2.2.1 邻接表——练习

在这里插入图片描述
在这里插入图片描述

9.2.3 邻接多重表

在这里插入图片描述
在这里插入图片描述

9.2.3.1 邻接多重表——练习

在这里插入图片描述
在这里插入图片描述

9.2.4 十字链表

在这里插入图片描述

9.3 图的遍历

9.3.1 深度优先遍历

在这里插入图片描述

9.3.2 广度优先遍历

在这里插入图片描述

9.4 图遍历的生成树

在这里插入图片描述

9.4.1 图遍历的生成树——练习

在这里插入图片描述
在这里插入图片描述

9.5 最小生成树

在这里插入图片描述

在这里插入图片描述

9.5.1 最小生成树——习题

在这里插入图片描述
在这里插入图片描述

9.6 最短路径

在这里插入图片描述
在这里插入图片描述

9.6.1 最短路径——习题

在这里插入图片描述
在这里插入图片描述

9.7 拓扑排序

在这里插入图片描述
在这里插入图片描述

9.7.1 拓扑排序——课堂例题

在这里插入图片描述
在这里插入图片描述

9.8 关键路径

在这里插入图片描述
在这里插入图片描述

9.8.1 关键路径——练习

在这里插入图片描述
在这里插入图片描述

P10 查找

10.1折半查找

在这里插入图片描述

10.1.1 折半查找——练习

在这里插入图片描述
在这里插入图片描述

10.2 分块查找

在这里插入图片描述

10.3 散列表(哈希表)

在这里插入图片描述

10.3.1 散列表——处理冲突

10.3.1.1 线性探测法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10.3.1.2 平方探测法

在这里插入图片描述
在这里插入图片描述

10.3.1.3 再散列法


在这里插入图片描述

10.3.1.4 伪随机法序列法在这里插入图片描述
10.3.1.5 散列表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10.3.1.5.1 散列表——练习

在这里插入图片描述
在这里插入图片描述
2、在这里插入图片描述

P11 B树(11.2后此章节视频知识点出错)

11.1 B树的基本操作

11.1.1 B树插入

在这里插入图片描述

11.1.2 B树删除

11.1.2.1 所删除的非叶子

在这里插入图片描述
在这里插入图片描述

11.1.2.2 所删除的是叶子

在这里插入图片描述
在这里插入图片描述

11.1.2.3 B树的操作——习题

在这里插入图片描述
在这里插入图片描述

11.2 B树的特性

在这里插入图片描述

P12 九大排序

12.1 排序总结

在这里插入图片描述

12.1.1 插入排序

在这里插入图片描述
在这里插入图片描述

12.1.2 希尔排序

在这里插入图片描述
在这里插入图片描述

12.1.3 冒泡排序

在这里插入图片描述
在这里插入图片描述

12.1.4 快速排序

在这里插入图片描述
在这里插入图片描述

12.1.5 选择排序

在这里插入图片描述
在这里插入图片描述

12.1.6 堆排序

在这里插入图片描述
在这里插入图片描述

12.1.7 归并排序

在这里插入图片描述
在这里插入图片描述

12.1.8 基数排序

在这里插入图片描述
在这里插入图片描述

·

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值