空栈 ,对序列 a,b,c,d,e,f 依次执行:进栈、进栈、出栈、进栈、进栈、出栈。操作完成后栈底元素为( )。(2020 年 CSP-S 真题)
考点:栈底元素追踪(A1)。
(A1)考点:栈底元素追踪——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查栈底元素追踪的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
空栈依次执行 push(1) push(2) pop() push(3) push(4) pop() pop(),此时栈中从栈底到栈顶为( )。
考点:多次进出栈模拟(A2)。
(A2)考点:多次进出栈模拟——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查多次进出栈模拟的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
元素 a,b,c,d,e,f 依次进栈,允许进栈退栈交替进行。下列不可能的出栈序列是( )。(2022 年 CSP-S 真题:不允许连续三次退栈)
考点:出栈序列约束条件(A3)。
(A3)考点:出栈序列约束条件——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查出栈序列约束条件的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
出栈序列 fedcba(全逆序)要求进栈 个元素后连续退栈 次。如果约束"不允许连续三次退栈",这个序列( )。
考点:不允许连续三次退栈(A4)。
(A4)考点:不允许连续三次退栈——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查不允许连续三次退栈的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
元素 e1~e6 依次进栈(允许交替退栈),出栈序列为 e2,e4,e3,e6,e5,e1。栈的容量至少为( )个。
考点:栈容量计算(A5)。
(A5)考点:栈容量计算——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查栈容量计算的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
递归函数在计算机内部通过( )实现。
考点:递归调用栈本质(A6)。
(A6)考点:递归调用栈本质——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递归调用栈本质的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
main() 调用 f()、f() 调用 g(),此时调用栈从底到顶为( )。
考点:函数调用与栈帧(A7)。
(A7)考点:函数调用与栈帧——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查函数调用与栈帧的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
函数 A 调用 B,B 调用 C,C 返回后 B 也返回,然后 A 调用 D。D 开始执行时栈中有( )个帧。
考点:多函数嵌套调用(A8)。
(A8)考点:多函数嵌套调用——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查多函数嵌套调用的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
用栈求中缀表达式 3 + 4 * 2 的值时,读到 * 需要先与栈顶 + 比较优先级,因为( )。
考点:栈与表达式求值(A9)。
(A9)考点:栈与表达式求值——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查栈与表达式求值的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
表达式 a*(b+c)-d 的后缀表达式为( )。(2020 年 CSP-S 真题)
考点:中缀转后缀栈算法(A10)。
(A10)考点:中缀转后缀栈算法——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查中缀转后缀栈算法的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
后缀表达式 23*4+ 的值是( )。
考点:后缀表达式求值(A11)。
(A11)考点:后缀表达式求值——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查后缀表达式求值的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
关于栈的说法,错误的是( )。
考点:栈综合判断(A12)。
(A12)考点:栈综合判断——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查栈综合判断的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
广度优先搜索(BFS)一定需要用到的数据结构是( )。(2020 年 CSP-S 真题)
考点:BFS 使用队列的原因(B1)。
(B1)考点:BFS 使用队列的原因——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查BFS 使用队列的原因的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
下面哪个数据结构最适合实现先进先出(FIFO)功能( )。(2024 年 CSP-S 真题)
考点:队列 FIFO 特性(B2)。
(B2)考点:队列 FIFO 特性——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查队列 FIFO 特性的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
"实现撤销操作(最近做的最先撤销)"应使用( );"实现排队叫号(先来先服务)"应使用( )。
考点:队列与栈的选择(B3)。
(B3)考点:队列与栈的选择——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查队列与栈的选择的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
容量为 的循环队列,front=3, rear=1,队列中有( )个元素。
考点:循环队列取模(B4)。
(B4)考点:循环队列取模——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查循环队列取模的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
容量为 的循环队列,判满条件 (rear + 1) % n == front 意味着( )。
考点:循环队列判满判空(B5)。
(B5)考点:循环队列判满判空——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查循环队列判满判空的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
队列初始为空,依次执行 enqueue(A) enqueue(B) dequeue() enqueue(C) dequeue(),此时队头和队尾分别是( )。
考点:队列模拟过程(B6)。
(B6)考点:队列模拟过程——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查队列模拟过程的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
用两个队列 Q1, Q2 模拟栈的 pop 操作(弹出最后入队的元素),正确做法是( )。
考点:双队列交替(B7)。
(B7)考点:双队列交替——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查双队列交替的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
优先队列(priority_queue)与普通队列的区别是( )。
考点:优先队列概念(B8)。
(B8)考点:优先队列概念——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查优先队列概念的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
BFS 用队列实现的层序遍历,第 层的点在队列中的特点是( )。
考点:队列与 BFS 层序(B9)。
(B9)考点:队列与 BFS 层序——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查队列与 BFS 层序的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
关于队列的说法,错误的是( )。
考点:队列综合判断(B10)。
(B10)考点:队列综合判断——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查队列综合判断的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
双端队列(deque)的特点是( )。
考点:deque 定义(C1)。
(C1)考点:deque 定义——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查deque 定义的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
deque<int> d 依次执行 push_back(1) push_front(2) push_back(3) push_front(4),从前往后为( )。
考点:两端操作(C2)。
(C2)考点:两端操作——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查两端操作的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
deque 的 push_front(x) 等价于( )。
考点:push_back 与 push_front(C3)。
(C3)考点:push_back 与 push_front——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查push_back 与 push_front的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
deque<int> d = {1,2,3,4} 执行 pop_front() 和 pop_back() 后,d 变为( )。
考点:pop_front 与 pop_back(C4)。
(C4)考点:pop_front 与 pop_back——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查pop_front 与 pop_back的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
deque 与 vector 的主要区别是( )。
考点:deque 与 vector 区别(C5)。
(C5)考点:deque 与 vector 区别——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查deque 与 vector 区别的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
queue(队列容器适配器)与 deque(双端队列容器)的关系是( )。
考点:deque 与 queue 区别(C6)。
(C6)考点:deque 与 queue 区别——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查deque 与 queue 区别的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
"滑动窗口"问题:长度为 的窗口从左到右滑动,每步求窗口内的最大值。暴力做法 ,用单调队列可优化到( )。
考点:滑动窗口概念(C7)。
(C7)考点:滑动窗口概念——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查滑动窗口概念的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
下列最适合用 deque 的场景是( )。
考点:deque 应用场景(C8)。
(C8)考点:deque 应用场景——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查deque 应用场景的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
01deque<int> d; 02for (int i = 1; i <= 5; ++i) { 03 if (i % 2) d.push_front(i); 04 else d.push_back(i); 05}
执行后 d 从前往后为( )。
考点:deque 代码阅读(C9)。
(C9)考点:deque 代码阅读——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查deque 代码阅读的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
关于 deque,错误的是( )。
考点:deque 综合判断(C10)。
(C10)考点:deque 综合判断——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查deque 综合判断的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
单调栈是指栈内元素从底到顶保持( )的栈。
考点:单调栈定义(D1)。
(D1)考点:单调栈定义——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查单调栈定义的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
维护一个单调递减栈(栈底到栈顶递减),依次入栈 。元素 入栈时需要先弹出( )。
考点:单调栈维护过程(D2)。
(D2)考点:单调栈维护过程——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查单调栈维护过程的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
数组 ,对每个元素找右边第一个比它大的元素。用单调栈(递减栈)求解,元素 的下一个更大元素是( )。
考点:单调栈找下一个更大元素(D3)。
(D3)考点:单调栈找下一个更大元素——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查单调栈找下一个更大元素的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
下列问题最适合用单调栈解决的是( )。
考点:单调栈应用辨识(D4)。
(D4)考点:单调栈应用辨识——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查单调栈应用辨识的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
单调队列是指队列内元素从 front 到 back 保持( ),常用于滑动窗口最值。
考点:单调队列定义(D5)。
(D5)考点:单调队列定义——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查单调队列定义的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
维护单调递减队列(存下标),处理数组 。处理 时需要先从队尾弹出( )。
考点:单调队列维护过程(D6)。
(D6)考点:单调队列维护过程——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查单调队列维护过程的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
数组 ,窗口大小 。窗口 (元素 )的最大值和窗口 (元素 )的最大值分别是( )。
考点:滑动窗口最大值(D7)。
(D7)考点:滑动窗口最大值——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查滑动窗口最大值的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
单调队列与单调栈的本质区别是( )。
考点:单调队列 vs 单调栈(D8)。
(D8)考点:单调队列 vs 单调栈——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查单调队列 vs 单调栈的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
单调栈找"每个元素右边第一个更大元素"的代码框架,栈存的是( )。
考点:单调栈代码框架(D9)。
(D9)考点:单调栈代码框架——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查单调栈代码框架的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
单调队列求滑动窗口最大值的代码中,"从队头弹出"的条件是( )。
考点:单调队列代码框架(D10)。
(D10)考点:单调队列代码框架——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查单调队列代码框架的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
单调栈和单调队列的总时间复杂度都是 ,原因是( )。
考点:单调栈队列复杂度(D11)。
(D11)考点:单调栈队列复杂度——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查单调栈队列复杂度的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
关于单调栈和单调队列,错误的是( )。
考点:单调结构综合(D12)。
(D12)考点:单调结构综合——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查单调结构综合的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
在程序运行过程中,如果递归调用的层数过多,可能会由于( )引发错误。(2021 年 CSP-S 真题)
考点:递归与栈空间(E1)。
(E1)考点:递归与栈空间——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递归与栈空间的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
递归深度 的函数(每帧约 字节),总栈空间约( )。
考点:递归深度与栈溢出(E2)。
(E2)考点:递归深度与栈溢出——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递归深度与栈溢出的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
在 C++ 中,以下哪个函数调用会造成栈溢出( )。(2024 年 CSP-S 真题)
考点:造成栈溢出的代码(E3)。
(E3)考点:造成栈溢出的代码——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查造成栈溢出的代码的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
递归函数 ()可以改写为循环:for(i=1; i<=n; ++i) s += i;。改写的好处是( )。
考点:递归转循环(E4)。
(E4)考点:递归转循环——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递归转循环的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
尾递归是指( )。
考点:尾递归概念(E5)。
(E5)考点:尾递归概念——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查尾递归概念的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
递归函数 g(n) 调用 g(n-1) 两次()。 的总调用次数是( )。
考点:递归树节点计算(E6)。
(E6)考点:递归树节点计算——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递归树节点计算的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
01int h(int n) { 02 if (n <= 0) return 0; 03 return h(n / 2) + n; 04}
h(7) 的返回值是( )。
考点:递归返回值追踪(E7)。
(E7)考点:递归返回值追踪——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递归返回值追踪的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
01void p(int n) { 02 if (n == 0) { cout << "*"; return; } 03 p(n - 1); 04 cout << n; 05 p(n - 1); 06}
p(2) 输出( )。
考点:多路递归输出(E8)。
(E8)考点:多路递归输出——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查多路递归输出的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
01int q(int a, int b) { 02 if (b == 0) return a; 03 return q(b, a % b); 04}
q(12, 8) 的返回值是( )(辗转相除法)。
考点:递归参数变化(E9)。
(E9)考点:递归参数变化——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递归参数变化的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
递归与分治的关系是( )。
考点:递归与分治关系(E10)。
(E10)考点:递归与分治关系——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递归与分治关系的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
设计递归函数时最重要的安全措施是( )。
考点:递归终止条件设计(E11)。
(E11)考点:递归终止条件设计——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递归终止条件设计的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
调试递归函数最有效的方法是( )。
考点:递归调试方法(E12)。
(E12)考点:递归调试方法——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递归调试方法的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
朴素斐波那契递归 fib(30) 需要约 次调用,但加记忆化后只需( )次。
考点:递归性能分析(E13)。
(E13)考点:递归性能分析——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递归性能分析的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
关于递归,错误的是( )。
考点:递归综合判断(E14)。
(E14)考点:递归综合判断——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递归综合判断的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
递推与递归的关系是( )。
考点:递推与递归的关系(F1)。
(F1)考点:递推与递归的关系——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递推与递归的关系的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
递推 ,。( )。
考点:一阶线性递推(F2)。
(F2)考点:一阶线性递推——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查一阶线性递推的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
斐波那契 。( )。
考点:二阶递推斐波那契(F3)。
(F3)考点:二阶递推斐波那契——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查二阶递推斐波那契的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
递推 。( )。
考点:斐波那契变式(F4)。
(F4)考点:斐波那契变式——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查斐波那契变式的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
汉诺塔递推 ,。( )。
考点:汉诺塔递推(F5)。
(F5)考点:汉诺塔递推——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查汉诺塔递推的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
汉诺塔 (A→C 借助 B),移动序列是( )。
考点:汉诺塔代码追踪(F6)。
(F6)考点:汉诺塔代码追踪——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查汉诺塔代码追踪的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
递推 ()的通项公式是( )。
考点:递推求通项概念(F7)。
(F7)考点:递推求通项概念——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递推求通项概念的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
递推 的特征方程 的解中包含黄金比 。这说明斐波那契数列的增长速度是( )。
考点:特征方程概念(F8)。
(F8)考点:特征方程概念——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查特征方程概念的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
递推 ,初始条件 得斐波那契数列;改为 得到的是( )数列。
考点:递推初始条件重要性(F9)。
(F9)考点:递推初始条件重要性——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递推初始条件重要性的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
递推编程的标准框架是( )。
考点:递推编程框架(F10)。
(F10)考点:递推编程框架——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递推编程框架的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
斐波那契数列 。int(上限约 )能否存下( )。
考点:递推溢出判断(F11)。
(F11)考点:递推溢出判断——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递推溢出判断的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
递推 只需前两项。不开 数组、只保留两个变量的做法叫( )。
考点:递推空间优化(F12)。
(F12)考点:递推空间优化——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递推空间优化的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
递推与动态规划的关系是( )。
考点:递推与 DP 关系(F13)。
(F13)考点:递推与 DP 关系——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递推与 DP 关系的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
关于递推,错误的是( )。
考点:递推综合判断(F14)。
(F14)考点:递推综合判断——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递推综合判断的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
用双栈法求中缀表达式 2 * (3 + 4) 的值,计算结果是( )。
考点:表达式求值完整流程(G1)。
(G1)考点:表达式求值完整流程——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查表达式求值完整流程的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
检查括号串 (()()) 是否匹配:用栈扫描,最终栈的状态是( )。
考点:括号匹配栈应用(G2)。
(G2)考点:括号匹配栈应用——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查括号匹配栈应用的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
main() 调用 f(3),f(3) 调用 f(2),f(2) 调用 f(1),f(1) 返回 。此时栈中从底到顶为( )。
考点:函数调用栈模拟(G3)。
(G3)考点:函数调用栈模拟——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查函数调用栈模拟的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
表达式 (a+b)*c-d 的后缀表达式为( )。
考点:中缀转后缀完整题(G4)。
(G4)考点:中缀转后缀完整题——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查中缀转后缀完整题的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
01void f(int n) { 02 if (n > 2) { f(n / 2); cout << n; } 03 else cout << n; 04}
f(12) 的输出是( )。
考点:递归函数调用追踪(G5)。
(G5)考点:递归函数调用追踪——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递归函数调用追踪的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
初始空栈和空队列。执行 push(1) push(2) enqueue(pop()) push(3) enqueue(pop()),此时队列从队头到队尾为( )。
考点:栈队列混合操作(G6)。
(G6)考点:栈队列混合操作——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查栈队列混合操作的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
二叉树根为 ,左子 、右子 , 的左子 。BFS 层序遍历序列是( )。
考点:BFS 层序遍历队列(G7)。
(G7)考点:BFS 层序遍历队列——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查BFS 层序遍历队列的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
01int s(int arr[], int n) { 02 if (n == 0) return 0; 03 return arr[n-1] + s(arr, n-1); 04}
int a[] = {1, 2, 3}; s(a, 3) 返回( )。
考点:递归求和代码阅读(G8)。
(G8)考点:递归求和代码阅读——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递归求和代码阅读的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
递推 ,。( )。
考点:递推数组填充(G9)。
(G9)考点:递推数组填充——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递推数组填充的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
用两个栈 S1(入队栈)和 S2(出队栈)实现队列。dequeue() 时若 S2 为空,应( )。
考点:栈实现队列(G10)。
(G10)考点:栈实现队列——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查栈实现队列的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
用两个队列实现栈的 pop()(弹出最后入队的元素),需要的操作次数是( )。
考点:队列实现栈(G11)。
(G11)考点:队列实现栈——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查队列实现栈的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
01int f(int n) { 02 return f(n + 1); // 没有终止条件 03}
调用 f(0) 的结果是( )。
考点:递归与栈溢出实例(G12)。
(G12)考点:递归与栈溢出实例——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递归与栈溢出实例的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
空栈依次进栈 a,b,c,允许交替出栈。下列可能的出栈序列是( )。
考点:综合真题一(G13)。
(G13)考点:综合真题一——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查综合真题一的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
以下对数据结构的表述不恰当的是( )。(2023 年 CSP-S 真题)
考点:综合真题二(G14)。
(G14)考点:综合真题二——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查综合真题二的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
栈、队列、deque 的操作能力从少到多排列是( )。
考点:数据结构概念辨析(H1)。
(H1)考点:数据结构概念辨析——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查数据结构概念辨析的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
对同一输入序列 1,2,3,栈和队列的出序分别是( )。
考点:FIFO 与 LIFO 对比(H2)。
(H2)考点:FIFO 与 LIFO 对比——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查FIFO 与 LIFO 对比的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
的递归求和 f(n) = f(n-1) + n 应改用循环,主要原因是( )。
考点:递归与循环选择(H3)。
(H3)考点:递归与循环选择——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递归与循环选择的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
防范递归栈溢出的方法不包括( )。
考点:栈溢出防范(H4)。
(H4)考点:栈溢出防范——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查栈溢出防范的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
容量 的循环队列,rear = 4,enqueue 后 rear 变为( )。
考点:循环队列下标计算(H5)。
(H5)考点:循环队列下标计算——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查循环队列下标计算的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
递推 从 开始循环( 和 已初始化)( )。
考点:递推边界检查(H6)。
(H6)考点:递推边界检查——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查递推边界检查的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
单调栈的核心性质是( )。
考点:综合判断一(H7)。
(H7)考点:综合判断一——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查综合判断一的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
滑动窗口最大值用单调递减队列而不是单调递增队列,原因是( )。
考点:综合判断二(H8)。
(H8)考点:综合判断二——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查综合判断二的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
递推 ()的 ( )。
考点:综合判断三(H9)。
(H9)考点:综合判断三——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查综合判断三的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
deque 的 insert 在中间位置的时间复杂度是( )。
考点:综合判断四(H10)。
(H10)考点:综合判断四——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查综合判断四的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
单调队列的"过期弹出"(从队头移出超出窗口的下标)保证了( )。
考点:综合判断五(H11)。
(H11)考点:综合判断五——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查综合判断五的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
关于 priority_queue(优先队列),正确的是( )。
考点:综合判断六(H12)。
(H12)考点:综合判断六——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查综合判断六的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
递推 (),( )。
考点:综合判断七(H13)。
(H13)考点:综合判断七——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查综合判断七的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。
关于栈、队列、递归和递推,错误的是( )。
考点:综合判断八(H14)。
(H14)考点:综合判断八——栈的后进先出、队列的先进先出、递归与系统栈的关系以及递推填表方法是数据结构与算法的核心基础。
解析:本题考查综合判断八的关键要点。栈LIFO用于递归/表达式/括号匹配,队列FIFO用于BFS/排队,deque两端开放,单调栈队列优化滑动窗口,递推自底向上填表避免重复计算。
排除法:每个错误选项对应一种常见混淆——如把栈和队列的出入方向弄反、忽略递归的栈空间开销、或把递推与递归完全等同。