gpt4 book ai didi

algorithm - 如何将两个队列合并为一个队列?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:06:56 27 4
gpt4 key购买 nike

给定两个支持操作 enqueue/push_back、dequeue/pop_front 和 size 的队列

Q1: A1 A2 A3
Q2: B1 B2 B3

如何将它们合并到第三个队列(也支持相同的操作),获得:

Q3: A1 B1 A2 B2 A3 B3

我更感兴趣的是要使用的算法,而不是任何特定的语言实现。

最佳答案

这是一些伪代码:

Queue mergeQueues(Queue A, Queue B)
{
Queue newQ;
while(A.nonempty() OR B.nonempty())
{
if (A.nonempty())
newQ.push(A.pop());
if (B.nonempty())
newQ.push(B.pop());
}
return newQ;
}

push 将一个元素插入队列,pop 移除队列中的下一个元素并返回它。

请注意,这不适用于堆栈。你最终会得到元素的倒退。如果您可以反转堆栈(例如,通过重复转移到另一个堆栈),那么它就可以工作。

关于algorithm - 如何将两个队列合并为一个队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/875911/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com