admin管理员组文章数量:1636897
Idea: Implement Queue by using two Stacks: in & out
Stack in: Insert all value into this StackStack out: reverse order of in stack
class MyQueue{
Stack<Integer> in;
Stack<Integer> out;
MyQueue(){
in=new Stack();
out=new Stack();
}
public void EnQueue(int data){
in.push(data);
System.out.println("Add " + data + " in queue!");
}
private void shiftReverse(){
if(out.isEmpty()){
//push reverse order into out Stack
while(!in.isEmpty()){
out.push(in.pop());
}
}
}
public int DeQueue(){
shiftReverse();
if(out.isEmpty()){
System.out.println("Queue is empty, cannot remove!");
return -1;
}
System.out.println("Remove " + out.peek() + " from queue!");
return out.pop();
}
public int FirstElement(){
shiftReverse();
if( out.isEmpty() ) {
System.out.println("Queue is empty, cannot peek!");
return -1;
}
System.out.println("First element in queue: " + out.peek());
return out.peek();
}
}
本文标签: QueueimplementJavaStacks
版权声明:本文标题:Implement Queue with two Stacks Java 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1729234819a1191872.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论