mirror of
https://github.com/CodePanda66/CSPostgraduate-408.git
synced 2023-05-21 21:49:33 +08:00
🔧 change picture bed
This commit is contained in:
@@ -1,24 +1,24 @@
|
||||
# 栈
|
||||
|
||||

|
||||

|
||||
|
||||
## 栈的定义
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
## 栈的基本操作
|
||||
|
||||

|
||||

|
||||
|
||||
### 出栈顺序
|
||||
|
||||

|
||||

|
||||
|
||||
## 总结
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
@@ -1,41 +1,41 @@
|
||||
# 顺序栈
|
||||
|
||||

|
||||

|
||||
|
||||
## 顺序栈的定义
|
||||
|
||||

|
||||

|
||||
|
||||
## 基本操作
|
||||
|
||||
### 初始化操作
|
||||
|
||||

|
||||

|
||||
|
||||
### 进栈操作
|
||||
|
||||

|
||||

|
||||
|
||||
### 出栈操作
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
|
||||
### 读取栈顶元素
|
||||
|
||||

|
||||

|
||||
|
||||
## 另一种基本操作的实现方式:
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
## 共享栈
|
||||
|
||||

|
||||

|
||||
|
||||
## 总结
|
||||
|
||||

|
||||

|
||||
@@ -1,18 +1,18 @@
|
||||
# 链栈
|
||||
|
||||

|
||||

|
||||
|
||||
## 复习单链表
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
## 链栈的定义
|
||||
|
||||

|
||||

|
||||
|
||||
## 总结
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
# 队列
|
||||
|
||||

|
||||

|
||||
|
||||
## 队列的定义
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
## 队列的基本操作
|
||||
|
||||

|
||||

|
||||
|
||||
## 总结
|
||||
|
||||

|
||||

|
||||
@@ -1,53 +1,53 @@
|
||||
# 顺序队列
|
||||
|
||||

|
||||

|
||||
|
||||
## 顺序队列的定义
|
||||
|
||||

|
||||

|
||||
|
||||
### 顺序队列的初始化
|
||||
|
||||

|
||||

|
||||
|
||||
### 入队操作
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
### 循环队列
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
### 出队
|
||||
|
||||

|
||||

|
||||
|
||||
### 判空/判满
|
||||
|
||||
方案一:牺牲一个存储空间
|
||||
|
||||

|
||||

|
||||
|
||||
方案二:利用size变量记录队列长度
|
||||
|
||||

|
||||

|
||||
|
||||
方案三:利用tag记录最后一次操作
|
||||
|
||||

|
||||

|
||||
|
||||
## 其它实现方式
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
## 总结
|
||||
|
||||

|
||||

|
||||
@@ -1,44 +1,44 @@
|
||||
# 链队列
|
||||
|
||||

|
||||

|
||||
|
||||
## 链队列的定义
|
||||
|
||||

|
||||

|
||||
|
||||
## 链队列的基本操作
|
||||
|
||||
### 链队列的初始化
|
||||
|
||||

|
||||

|
||||
|
||||
### 入队
|
||||
|
||||
带头节点
|
||||
|
||||

|
||||

|
||||
|
||||
不带头节点
|
||||
|
||||

|
||||

|
||||
|
||||
### 出队
|
||||
|
||||
带有头节点
|
||||
|
||||

|
||||

|
||||
|
||||
不带头节点
|
||||
|
||||

|
||||

|
||||
|
||||
### 判满
|
||||
|
||||

|
||||

|
||||
|
||||
## 总结
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
# 双端队列
|
||||
|
||||

|
||||

|
||||
|
||||
## 双端队列的定义
|
||||
|
||||

|
||||

|
||||
|
||||
## 考点:判断输出序列的合法性
|
||||
|
||||
### 对于栈的输出序列的合法性
|
||||
|
||||

|
||||

|
||||
|
||||
绿色为合法,红色为非法
|
||||
|
||||
### 对于输入受限的双端队列的输出序列的合法性
|
||||
|
||||

|
||||

|
||||
|
||||
绿色为合法,红色为非法,带下划线是在栈中不合法,但在输入受限的双端队列中合法的。
|
||||
|
||||
### 对于输出受限的双端队列
|
||||
|
||||

|
||||

|
||||
|
||||
绿色为合法,红色为非法,带下划线是在栈中不合法,但在输出受限的双端队列中合法
|
||||
|
||||
|
||||
@@ -2,145 +2,145 @@
|
||||
|
||||
## 括号匹配问题
|
||||
|
||||

|
||||

|
||||
|
||||
### 实际过程
|
||||
|
||||

|
||||

|
||||
|
||||
####正好匹配
|
||||
|
||||

|
||||

|
||||
|
||||
####左右不匹配
|
||||
|
||||

|
||||

|
||||
|
||||
#### 右括号单身
|
||||
|
||||

|
||||

|
||||
|
||||
#### 左括号单身
|
||||
|
||||

|
||||

|
||||
|
||||
#### 整个流程
|
||||
|
||||

|
||||

|
||||
|
||||
### 算法实现
|
||||
|
||||

|
||||

|
||||
|
||||
### 总结
|
||||
|
||||

|
||||

|
||||
|
||||
## 表达式求值
|
||||
|
||||

|
||||

|
||||
|
||||
### 算数表达式是什么?
|
||||
|
||||
由三个部分组成(操作数,运算符,界限符)
|
||||
|
||||

|
||||

|
||||
|
||||
### 前/后缀表达式的诞生
|
||||
|
||||

|
||||

|
||||
|
||||
### 中/后/前缀表达式的区别
|
||||
|
||||

|
||||

|
||||
|
||||
#### 中转后的过程:
|
||||
|
||||

|
||||

|
||||
|
||||
**上图中,后缀表达式的算术符的先后次序对应中缀表达式的生效的先后次序**,但是这是一定的吗?
|
||||
|
||||

|
||||

|
||||
|
||||
左优先原则,可保证运算顺序唯一性,以确定机算算法输出结果的唯一性!!
|
||||
|
||||

|
||||

|
||||
|
||||
#### 机算算法实现
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
### 中转前的过程
|
||||
|
||||

|
||||

|
||||
|
||||
中转后和中转前的区别:
|
||||
|
||||

|
||||

|
||||
|
||||
#### 中转前的机算过程:
|
||||
|
||||

|
||||

|
||||
|
||||
### 总结
|
||||
|
||||

|
||||

|
||||
|
||||
"左优先"/“右优先”原则和左/右操作数不是专业说法,仅供理解!
|
||||
|
||||
## 表达式求值——具体代码实现
|
||||
|
||||

|
||||

|
||||
|
||||
### 中转后机算
|
||||
|
||||
手算过程:
|
||||
|
||||

|
||||

|
||||
|
||||
机算过程:
|
||||
|
||||

|
||||

|
||||
|
||||
### 中缀表达式的计算
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
CPU只能执行单个的加减乘除运算,上边这么搞的意义就是为了将高级程序语言编译成简单的机器码,让CPU去执行!
|
||||
|
||||
### 总结
|
||||
|
||||

|
||||

|
||||
|
||||
## 栈在递归中的应用
|
||||
|
||||
递归的过程就是函数调用的过程
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
### 适合用“递归”算法解决的问题
|
||||
|
||||

|
||||

|
||||
|
||||
求阶乘:
|
||||
|
||||

|
||||

|
||||
|
||||
**使用递归时,需要注意调用栈溢出!**
|
||||
|
||||

|
||||

|
||||
|
||||
**可以自定义栈将递归算法改造成非递归算法!**
|
||||
|
||||
求斐波那契数列
|
||||
|
||||

|
||||

|
||||
|
||||
### 总结
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
提示:不知道树这种数据结构的同学,可以考虑先跳过本文内容,等了解树之后,再来康康~
|
||||
|
||||

|
||||

|
||||
|
||||
详细实现内容在树的章节实现!
|
||||
|
||||
@@ -12,15 +12,15 @@
|
||||
|
||||
遍历是指找出所有元素节点
|
||||
|
||||

|
||||

|
||||
|
||||
## 队列在操作系统中的应用
|
||||
|
||||
**CPU资源分配问题**
|
||||
|
||||

|
||||

|
||||
|
||||
**打印数据缓冲区**
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
Reference in New Issue
Block a user