Two stacks implement one queue and two queues implement one stack (Java), and two queues implement java

Source: Internet
Author: User

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.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.