缓冲区装满了还有新数据来
有界缓冲装满之后又来了新数据,常见的两种处理是【0】。
三个任务谁最后被处理
运行下面这段程序: q = [] for t in ["备份", "转码", "发信"]: q.append(t) last = "" while le
缓冲区丢了几个
运行下面这段程序(缓冲区最多装 2 个): buf = [] dropped = 0 for i in range(5): if len(buf) == 2: dropped += 1 else:
按提交顺序把任务处理完
补全 run_all:把队列里的任务按提交顺序全部处理完,返回最后处理的那个。
有界缓冲:装不下就丢
补全 fill:缓冲区最多装 cap 个,装满之后来的一律丢掉,返回丢了几个。 这次容量是 2,一共来了 5 个。
叫号机:第三个被叫到的是几号
补全 call_nth:1 到 5 号依次取票排队,按顺序叫号,返回第 n 个被叫到的号。 这次问的是第 3 个。
两个窗口轮流叫,二号窗最后服务谁
甲、乙、丙、丁、戊五个人排一条队,一号窗和二号窗轮流从队头叫人(一号先叫)。 补全代码,输出二号窗服务的最后一个人。
分层遍历为什么非要用队列
要一层一层地遍历,必须用队列,因为【0】。
把队列换成栈会变成什么
同样的遍历代码,把队列换成栈,就变成了【0】。
层序遍历最后访问谁
运行下面这段程序: TREE = {"总部": ["华北", "华南"], "华北": ["北京", "天津&qu