设计两个栈组成一个队列

import java.util.Stack;

/**
 * Created by Administrator on 17.6.2.
 */
public class TwoStacksQueue {
    public Stack<Integer> stackPush;
    public Stack<Integer> stackPop;

    public TwoStacksQueue() {
        stackPush = new Stack<Integer>();
        stackPop = new Stack<Integer>();

    }

    public void add(int num) {
        stackPush.push(num);
    }

    public int pop() {
        if (stackPush.empty() && stackPop.empty()) {
            throw new RuntimeException("empty");
        } else if (stackPop.empty()) {
            while (!stackPush.empty()) {
                stackPop.push(stackPush.pop());
            }
        }
        return stackPop.pop();
    }


    public int peek() {
        if (stackPush.empty() && stackPop.empty()) {
            throw new RuntimeException("empty");
        } else if (stackPop.empty()) {
            while (!stackPush.empty()) {
                stackPop.push(stackPush.pop());
            }
        }
        return stackPop.peek();
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容