我在 HackerRank 上练习数据结构,我遇到了一个问题,它说要使用两个堆栈实现一个队列,所以我查找它并理解了非常简单的逻辑,它就像:制作两个堆栈入队和出队:用于入队入队堆栈中的操作推入元素:对于出队操作-首先检查出队堆栈是否为空,如果为空,则从入队堆栈中弹出所有元素并将它们推入出队堆栈,以便入队完全反转,现在我们可以弹出从出队堆栈顶部执行出队操作(返回队列的前端):如果出队堆栈不为空,则只需从将成为队列前端的同一个 stcak 弹出。下面是一个 for 循环示例,它传输 Enqueue 堆栈的所有内容,并使用 push 和 pop 操作将它们放入 Dequeue 堆栈,但 for 循环的行为很奇怪
let enqueueStack = [1,2,3,4,5,6]
let dequeueStack = [];
for(let i=0;i<enqueueStack.length;i++){
dequeueStack.push(enqueueStack.pop())
}
console.log(enqueueStack)
console.log(dequeueStack
下面是输出
[ 1, 2, 3 ]
[ 6, 5, 4 ]
我尝试了 forEach 也不起作用