学习队列,用栈实现队列。题源:https://leetcode-cn.com/probl...思路:准备两个栈inStack和outStack入队时,出队时push到inStack,(1):若outStack为空,将inStack中的所有元素一一弹出,push到outStack,outStack弹出栈顶元素(2):如果outStack不为空,outStack弹出栈顶元素php实现代码inStack=newStack();$this->outStack=newStack();}/***@param$item*压入一个元素*入队*/publicfunctionpush($item){$this->inStack->push($item);}/***弹出一个元素*出队*/publicfunctionpop(){$this->checkOutStack();返回$this->outStack->pop();}/***获取队列的头元素*/publicfunctionpeek(){$this->checkOutStack();返回$this->outStack->top();}/***返回队列是否为空。*@returnBoolean*/publicfunctionempty(){return$this->inStack->isEmpty()&&$this->outStack->isEmpty();}}privatefunctioncheckOutStack(){if($this->outStack->isEmpty()){//如果出栈(outStack)栈为空,弹出所有入队(inStack)栈元素,放入出栈栈outStackwhile(!$this->inStack->isEmpty()){$this->outStack->push($this->inStack->pop());}}}}}源码下载:gitee
