1. 栈和队列的介绍
栈的介绍
队列的介绍
2. 栈和队列的使用
最小栈
栈的压入、弹出序列
逆波兰表达式求值
拓展:如何从中缀变为后缀
3. 两种设计模式
设计模式目前分为26种,这里就只介绍两种
- 适配器模式
- 迭代器模式
在日常生活中,我们常见的适配器通常为电源适配器(充电器) – 电源电压为220v,但是我们的设备并不需要这么高的电压(起保护作用) 需要将电源电压适配到我们所需的电压:50v/36v…
适配器模式:将已有的东西通过封装转换成我们所需的东西
迭代器模式:不暴露底层的实现细节,经过封装后提供统一的方式来访问容器
4. 栈的模拟实现
gitee提交代码:栈的模拟实现
栈遵循"先入后出"的原则,我们是否需要重新实现一个数据结构呢?–能不能采用之前学习的数据结构进行转换呢?
加上缺省值
template <class T,class Container = vector<T>>
5. 队列的模拟实现
gitee代码提交:队列的实现
6. deque的介绍(双端队列)
双端队列的结构:中控+buffer
在日常的使用场景比较少见,不像vector和list极致
使用场景 :既支持头插头删,又支持尾插尾删 对于随机访问和中间插入比较少
那么就是栈和队列了
所以,deque适合作为栈和队列的适配器