two stacks to implement a queue
ImportJava.util.Stack; Public class Demo07 {Stack<integer> Stack1 =NewStack<integer> (); Stack<integer> Stack2 =NewStack<integer> (); Public void Push(intnode) {Stack1.push (node); } Public int Pop() {if(Stack2.size () <=0){ while(Stack1.size () >0){/*int data = Stack1.peek ();//view stack top element, but do not remove it stack1.pop ();//pop-up stack top element stack2.push (data);//Press-in */Stack2.push (Stack1.pop ()); } }if(Stack2.isempty ()) {Try{Throw NewException ("Queue is empty."); }Catch(Exception e) { } }/** * int head = Stack2.peek (); * Stack2.pop (); */ intHead = Stack2.pop ();returnHead }}
two queues to implement a stack
Import Java.util.arraydeque;import Java.util.Queue; Public classDemo08 {queue<integer> queue1 =NewArraydeque<> (); Queue<integer> queue2 =NewArraydeque<> (); Public void Push(intnode) {//Two stacks are empty, priority is given to queue1 if(Queue1.isempty () &&queue2.isempty ()) {Queue1.add (node);return; }//If queue1 is empty, Queue2 has elements that are placed directly into Queue2 if(Queue1.isempty ()) {Queue2.add (node);return; }if(Queue2.isempty ()) {Queue1.add (node);return; } } Public int Pop() {//Two stacks are empty, no elements can pop up if(Queue1.isempty () &&queue2.isempty ()) {Try{Throw NewException ("Stack is empty"); }Catch(Exception e) { } }//If queue1 is empty, Queue2 has elements, queue2 elements are placed in queue1, until the last element, we pop up. if(Queue1.isempty ()) { while(Queue2.size () >1) {Queue1.add (Queue2.poll ()); }returnQueue2.poll (); }if(Queue2.isempty ()) { while(Queue1.size () >1) {Queue2.add (Queue1.poll ()); }returnQueue1.poll (); }return(Integer)NULL; } Public Static void Main(string[] args) {Demo08 demo08 =NewDemo08 (); Demo08.push (1); Demo08.push (2); Demo08.push (3); Demo08.push (4); System. out. println (Demo08.pop ()); System. out. println (Demo08.pop ()); Demo08.push (5); System. out. println (Demo08.pop ()); System. out. println (Demo08.pop ()); System. out. println (Demo08.pop ()); }}
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
Two stacks implement one queue and two queues to implement a stack (Java)