双端队列比队列多了什么本事
双端队列和普通队列的区别是【0】。
阅读更多 →
空了还叫号,也得挡住
补全 dequeue:空了返回 队列为空,否则正常取走队头。 排进 2 个人,却连叫三次,输出第三次的结果。
阅读更多 →
满了还往里排,得挡住
补全 enqueue:满了就不写入、返回 队列已满,没满才正常排进去并返回 已排上。 容量 4,排进 4 个人之后再排「北辰」,输出这次的结果。
阅读更多 →
写出判空和判满
补全 is_empty 和 is_full。 容量 4,排进 4 个人之后,输出它满了没有。
阅读更多 →
空了没有
运行下面这段程序: class CQueue: def __init__(self, cap=4): self.data = [None] * cap self
阅读更多 →
满了没有
运行下面这段程序: class CQueue: def __init__(self, cap=4): self.data = [None] * cap self
阅读更多 →
用计数法判满,条件写成什么
用「另存一个计数」的做法,满的条件是【0】。
阅读更多 →
通常怎么解决这个歧义
解决满/空分不清,常见做法是【0】。
阅读更多 →
只看 head 和 tail 为什么分不清
循环队列里只比较 head 和 tail,分不清满和空,因为【0】。
阅读更多 →
循环出队:队头也要会绕
补全 dequeue:取走 head 那一格,然后让 head 往前挪一格(要会绕回 0)。 容量 4:排满 4 个 → 全叫走(head 正好绕完一圈)→ 再排 3 个 → 又叫走 2 个。 输出最
阅读更多 →