3.2.4 双端队列
定义:
双端队列只允许从两端插入、删除的线性表
变种:
输入受限的双端队列:只允许从一端插入、两端删除的线性表
输出受限的双端队列:只允许从一端删除、两端插入的线性表
考点:判断输出序列是否合法
(不会考列出所有可能性,但是卡特兰数要记一下)
在栈中合法的序列,在双端队列中一定合法
(输出某一个元素,说明它之前的每一个元素都已经入队了)
知识回顾和重要考点:
3.3.1 栈在括号匹配中的应用
什么是括号匹配问题?
(括号都是成双成对出现的,数量匹配且形式匹配)
算法思路:
算法实现:
(考试的时候接口建议简要说明)
知识回顾与重要考点:
3.3.2 栈在表达式求值中的应用(上)
我们首席的算数表达式由三个部分组成:操作时、运算符、界限符(必要的)
(学习重点)
中缀、后缀、前缀表达式
中缀表达式转换为后缀表达式(手算):
(运算顺序不唯一,对应的后缀表达式也不唯一;为了保证程序的唯一性,我们遵守左优先原则:只要左边的运算能先计算,就先算左边)
后缀表达式的计算(手算):
(就是栈的运用啊)
后缀表达式的计算(计算):
(栈中最后的元素是这个后缀表达式的结果)
中缀表达式转换为前缀表达式(手算)
前缀表达式的计算:
知识回顾与重要考点: