怎样用 List 实现栈和队列?
先说出你的答案
定义边界、关键机制、一个反例;P8题再补容量、失败与验证。
查看完整题解
参考回答
直接回答
同一端进出就是栈,比如 LPUSH 加 LPOP。两端分开进出就是队列,比如 RPUSH 加 LPOP。阻塞取用 BLPOP 等命令可等待新元素。
讲清原理
弹出后元素已经离开列表。消费者中途崩溃可能丢掉已取任务,需要处理中列表、确认和恢复,或选 Streams。
例子与易错点
简单顺序任务可用列表。要重领、确认、查看积压时,可用 Streams 消费组并设计幂等。
左进左出取出 B。右进左出取出 A。
LPUSH q13:stack A B
LPOP q13:stack
RPUSH q13:queue A B
LPOP q13:queue
相关题 · 第 14 题、第 15 题
和评分标准对照,你能独立回答到哪一步?
自评会安排下一次复习,不保存你的口述内容。
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。