Two stacks implement one queue and two queues implement one stack (Java), and two queues implement java
Two stacks implement one queue
Import java. util. stack; public class Demo07 {Stack <Integer> stack1 = new Stack <Integer> (); Stack <Integer> stack2 = new Stack <Integer> (); public void push (int node) {stack1.push (node);} public int pop () {if (stack2.size () <= 0) {while (stack1.size ()> 0) {/* int data = stack1.peek (); // view the top element of the stack, but do not remove it stack1.pop (); // The top element stack2.push (data) is displayed ); // press */stack2.push (stack1.pop () ;}} if (stack2.isEmpty () {try {throw new Exception ("queue is empty. ");} catch (Exception e) {}}/*** int head = stack2.peek (); * stack2.pop (); */int head = stack2.pop (); return head ;}}
Two queues implement one stack
Import java. util. arrayDeque; import java. util. queue; public class Demo08 {Queue <Integer> queue1 = new ArrayDeque <> (); Queue <Integer> queue2 = new ArrayDeque <> (); public void push (int node) {// if both stacks are empty, queue1 if (queue1.isEmpty () & queue2.isEmpty () {queue1.add (node); return ;}// if queue1 is empty, queue2 has elements, which are directly put into queue2 if (queue1.isEmpty () {queue2.add (node); return;} if (queue2.isEmpty () {queue1.add (Node); return ;}} public int pop () {// when both stacks are empty, if (queue1.isEmpty () & queue2.isEmpty ()) {try {throw new Exception ("stack is empty");} catch (Exception e) {}}// if queue1 is empty, queue2 has elements, add the elements of queue2 to queue1 in sequence until the last element is displayed. If (queue1.isEmpty () {while (queue2.size ()> 1) {queue1.add (queue2.poll ();} return queue2.poll ();} if (queue2.isEmpty ()) {while (queue1.size ()> 1) {queue2.add (queue1.poll ();} return queue1.poll ();} return (Integer) null ;} public static void main (String [] args) {Demo08 demo08 = new Demo08 (); 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 Disclaimer: This article is an original article by the blogger and cannot be reproduced without the permission of the blogger.