牛客网(剑指offer) 第五题 用两个栈来实现一个队列
生活随笔
收集整理的這篇文章主要介紹了
牛客网(剑指offer) 第五题 用两个栈来实现一个队列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型。
//方法一:沒有用到棧
$queue=array();
function mypush($node)
{global $queue;array_push($queue,$node);//入隊列
}
function mypop()
{global $queue;return array_shift($queue);
}//方法二:用到Splstack類 此類為先進后出
$a= new SplStack();
$b= new SplStack();
function mypush($node)
{global $a;$a->push($node);//入棧
}
function mypop()
{global $a;global $b;//a的出棧->b的入棧->b的出棧if($b->isEmpty()){while(!$a->isEmpty()){$b->push($a->pop());}}return $b->pop();
}//方法三:數組模擬兩個棧 執行a的入棧->a的出棧->b的入棧->b的出棧
$a= array();
$b= array();
function mypush($node)
{global $a;global $b;array_push($a,$node);//入棧
}
function mypop()
{global $a;global $b;//a的出棧->b的入棧->b的出棧if(empty($b)){while(!empty($a)){array_push($b,array_pop($a));}}return array_pop($b);
}
總結
以上是生活随笔為你收集整理的牛客网(剑指offer) 第五题 用两个栈来实现一个队列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛客网(剑指offer) 第四题 重建二
- 下一篇: 牛客网(剑指offer) 第六题 旋转