本文共 1391 字,大约阅读时间需要 4 分钟。
package Queue;import java.util.LinkedList;public class TwoQueueMakeStack { /** * 两个队列实现一个栈 * 两个队列中至多只有一个队列中有元素 * 添加元素就是:如果两个队列都没有元素,就将元素添加到队列1中,否则如果哪个队列有元素,就将元素添加到该队列中。 * 删除元素的话比较麻烦,就是先把一个队列中元素全部放到另外一个队列中,只剩下一个元素,这个元素就是要返回的元素 * */ public static LinkedListqueue1 = new LinkedList<>(); public static LinkedList queue2 = new LinkedList<>(); public static void push(Integer i){ if(queue1.isEmpty() && queue2.isEmpty()){ queue1.addFirst(i); } if(!queue1.isEmpty()){ queue1.addFirst(i); }else{ queue2.addFirst(i); } } public static Integer pop(){ if(queue1.isEmpty() && queue2.isEmpty()){ throw new RuntimeException("栈中无元素"); } if(!queue1.isEmpty()){ while(queue1.size() > 1){ queue2.addFirst(queue1.removeLast()); } return queue1.removeLast(); }else{ while(queue2.size() > 1){ queue1.addFirst(queue2.removeLast()); } return queue2.removeLast(); } } public static void main(String[] args){ TwoQueueMakeStack stack = new TwoQueueMakeStack(); stack.push(1); stack.push(2); System.out.println(stack.pop()); System.out.println(stack.pop()); }}
转载地址:http://xnzji.baihongyu.com/