php用两个栈来实现队列
生活随笔
收集整理的這篇文章主要介紹了
php用两个栈来实现队列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
php用兩個棧來實現隊列
一、總結
我主要的問題是不知道的是題目描述,題目和貴的代碼之間的關系,以及返回值
思路:A棧做入隊操作,B棧做出隊操作,入隊的時候元素直接入A,出隊的時候判斷B棧是否為空,如果不為空,直接pop,如果為空,將A棧中的元素pop出去,B棧push,直到A棧為空,然后再popB里面的元素出隊
?
二、php用兩個棧來實現隊列
題目:用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型。
給的代碼:
<?phpfunction mypush($node) {// write code here } function mypop() {// write code here }?
代碼一:
<?php$stack = []; function mypush($node) //我也猜到這個$node應該是數組,不是數組,是push進來的值 { global $stack;return $stack[]=$node;// write code here } function mypop(){ global $stack;if($stack){return array_shift($stack); }return $stack;// write code here } 添加筆記?
java代碼:
class Solution { public:void push(int node) {stack1.push(node);}int pop() {int a;if(stack2.empty()){while(!stack1.empty()){a=stack1.top();stack2.push(a);stack1.pop();}}a=stack2.top();stack2.pop();return a;} private:stack<int> stack1;stack<int> stack2; };用兩個棧實現一個隊列的功能?要求給出算法和思路!
<分析>:
入隊:將元素進棧A
出隊:判斷棧B是否為空,如果為空,則將棧A中所有元素pop,并push進棧B,棧B出棧;
?如果不為空,棧B直接出棧。
用兩個隊列實現一個棧的功能?要求給出算法和思路!
<分析>:
入棧:將元素進隊列A
出棧:判斷隊列A中元素的個數是否為1,如果等于1,則出隊列,否則將隊列A中的元素???以此出隊列并放入隊列B,直到隊列A中的元素留下一個,然后隊列A出隊列,再把???隊列B中的元素出隊列以此放入隊列A中。
?
轉載于:https://www.cnblogs.com/Renyi-Fan/p/9047186.html
總結
以上是生活随笔為你收集整理的php用两个栈来实现队列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Matlab·Simulink的使用—【
- 下一篇: PHP | Uploading and