当前位置: 首页 > 后端技术 > Java

写一些算法题—剑指Offer09.用两个栈实现队列

时间:2023-04-01 22:47:22 Java

//定义CQueue类classCQueue{privateStackstackIn;//定义一个进入队列的栈privateStackstackOut;//定义出队栈//构造函数,创建新的入队栈和出队栈publicCQueue(){stackIn=newStack<>();stackOut=新堆栈<>();}//在队列尾部添加值(入队列)的方法将元素压入队列栈publicvoidappendTail(intvalue){stackIn.push(value);}//删除队头元素(出队)的方法publicintdeleteHead(){//如果出队栈不为空,直接弹出元素if(!stackOut.isEmpty()){返回stackOut.pop();}//如果队列中的栈也为空,则队列为空并返回-1if(stackIn.isEmpty()){return-1;}//如果出队栈为空,入队栈不为空,则需要将入队栈中的元素倒入出队栈while(!stackIn.isEmpty()){stackOut.push(stackIn.pop());//出队栈底为队头元素,将元素压入出队栈}returnstackOut.pop();//返回出队栈顶Element}}每次写算法题都会感谢chatgpt