1.实现原理图(有点像hanoi塔问题)
2.实现思路
- 准备两个栈用于实现队列:inStack和outStack
- 当有新元素入队时:将其压入inStack中
- 当需要出队时:
- 当outStack为空时:
- 将inStack中的元素逐一弹出并压入outStack中
- 将outStack的栈顶元素弹出
- 当outStack不为空时:
- 直接将outStack的栈顶元素弹出
- 当outStack为空时:
3.实现代码
<script>
var inslack=[];//入队数组
var outslack=[];//出队数组
var i; //计数器
var length=5; //假定入队元素总个数为5
console.log("入队");
for(i=0;i<=length-1;i++)
{
inslack.push(i);
console.log(`inslack`);
} //进行入队操作
for(i=length-1;i>=0;i--)
{
outslack.push(inslack(i));
inslack.pop();
console.log(`outslack`);
} //将inslack数组中的数组放入outslack(从栈顶将数组元素转移)
console.log("出队");
for(i=length-1;i>=0;i--)
{
outslack.pop();
console.log(`outslack`);
} //用outslack模拟从栈顶出队
</script>