栈、队列与双端队列
数据结构与算法基础#Python全栈#第五阶段#数据结构与算法基础#栈、队列与双端队列约 497 字 · 1 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
栈与队列分别遵循什么取出顺序?
追问 撤销记录、任务排队与层序遍历分别适合哪种结构?
如何使用 list 实现一个栈?
追问 入栈、出栈、读取栈顶与空栈错误如何设计?
为什么频繁使用 list.pop(0) 处理队列可能较慢?
追问 deque 如何支持两端操作?中间位置访问是否同样适合?
如何判断只包含 ()[]{} 的括号字符串是否有效?
追问 空串、错误顺序、多余左括号与右括号如何处理?
如何利用栈实现文本编辑器的撤销与重做?
追问 执行新操作后重做记录应怎样处理,存储整个快照与操作记录有什么差异?
如何计算逆波兰表达式,操作符限定为整数加、减、乘?
追问 操作数顺序、负数、非法 Token 和最终栈大小如何检查?
如何实现能同时读取最小值的栈?
追问 辅助栈如何处理重复最小值?各操作需要多少时间和额外空间?
单调栈解决什么类型的问题?
追问 以“下一个更大元素”为例,为什么每个元素入栈出栈有限次?
有界 deque 与任务队列有什么区别?
追问 deque 达到 maxlen 后追加的行为,为什么不能不加说明地用于不可丢任务?
内存队列、线程任务队列与消息中间件如何区分?
追问 并发等待、容量限制、持久化与失败重试分别需要什么额外机制?