首页 > 解决方案 > 如何将一个队列交错到另一个队列中?

问题描述

有哪些方法可以将一个队列交错到另一个队列中?例如: q1 = 1->2->3 , q2 = a->b->c 将 q2 交织到 q1 后,我想要 1->a->2->b->3->c . 我搜索的所有答案都是关于将它们一一合并到一个新队列中,而不是更改一个队列。

这就是我所做的,根本没有工作。

def interleave(q1, q2):
   first = q1.dequeue()
   while q2.size() != 0:
     removed = q2.dequeue()
     first.enqueue(removed)
     first = first.dequeue()

提前致谢!

标签: pythonqueueinterleave

解决方案


使您的代码工作的一种方法是这样的:

def interleave(q1, q2):
  result = queue.Queue()
  while not q1.empty() or not q2.empty():
    if not q1.empty():
      result.put(q1.get())

    if not q2.empty():
      result.put(q2.get())

  return result

有关 Python 队列的更多信息,请阅读https://docs.python.org/3.8/library/queue.html


推荐阅读