package swordOffre.gaopengyu; import java.util.LinkedList; import java.util.Queue; class stackEmptyException extends Exception { String str; stackEmptyException(String str) { this.str = str; } @Override public String toString() { return this.str; } } class StackWith2Queue<T> { Queue<T> queue1 = new LinkedList<>(); Queue<T> queue2 = new LinkedList<>(); public void push(T element) { if (queue2.isEmpty()) { queue1.offer(element); } else { queue2.offer(element); } } public T pop() throws stackEmptyException { T reslut; if (!queue1.isEmpty()) { while (queue1.size() > 1) { queue2.offer(queue1.poll()); } reslut = queue1.poll(); } else if (!queue2.isEmpty()) { while (queue2.size() > 1) { queue1.offer(queue2.poll()); } reslut = queue2.poll(); } else { throw new stackEmptyException("栈已经为空"); } return reslut; } } public class GenerateStackWith2Queue { public static void main(String[] args) { StackWith2Queue<String> stack = new StackWith2Queue<>(); stack.push("a"); stack.push("b"); stack.push("c"); stack.push("d"); try { System.out.println(stack.pop()); } catch (stackEmptyException e) { e.printStackTrace(); } } }
用两个队列实现栈9.1
最新推荐文章于 2024-03-29 19:54:57 发布