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中。
?