用两个栈实现队列操作

来源:互联网 发布:阿里巴巴菜鸟网络面试 编辑:程序博客网 时间:2024/05/17 10:55
package com.google.android;import java.util.Stack;/** * 用两个栈实现一个队列 * @author passionli * * @param <T> */public class QueueBaseOnDoubleStack<T> {private Stack<T> mStack1;private Stack<T> mStack2;public QueueBaseOnDoubleStack() {mStack1 = new Stack<T>();mStack2 = new Stack<T>();}public T appendTail(T v) {mStack1.push(v);return v;}public T deleteHead() {if (mStack2.empty()) {while (!mStack1.empty()) {mStack2.push(mStack1.pop());}}return mStack2.empty() ? null : mStack2.pop();}public boolean empty() {return mStack1.empty() && mStack2.empty();}public static void main(String[] args) {QueueBaseOnDoubleStack<String> queue = new QueueBaseOnDoubleStack<String>();System.out.println(queue.deleteHead());queue.appendTail("a");queue.appendTail("b");queue.appendTail("c");System.out.println(queue.deleteHead());queue.appendTail("a");queue.appendTail("b");while (!queue.empty()) {System.out.println(queue.deleteHead());}}}

0 0
原创粉丝点击