用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
看到好多人的测试用例也通过了,但是不是用的两个栈实现一个队列的,栈的操作只有push和pop。比如下面这个直接用了一个队列来实现
<?php
$a=array();
function mypush($node)
{
// write code here
global $a;
return array_push($a,$node);
}
function mypop()
{
// write code here
global $a;
return array_shift($a);
}
这是两个栈模拟的,取数据前先把栈1的pop到2,取完栈2顶部的数据,然后在将数据push到1里面去。
<?php
$stack1 = array();
$stack2 = array();
function mypush($node)
{
// write code here
GLOBAL $stack1;
array_push($stack1,$node);
}
function mypop()
{
// write code here
GLOBAL $stack1,$stack2;
while(count($stack1)>0){
array_push($stack2,array_pop($stack1));
}
$top = array_pop($stack2);
while(count($stack2)>0){
array_push($stack1,array_pop($stack2));
}
return $top;
}