栈和队列——由两个栈组成的队列

来源:互联网 发布:编程类书籍在哪找 编辑:程序博客网 时间:2024/05/18 00:42

【题目】
  编写一个类,用两个栈实现队列,支持队列的基本操作(add、poll、peek)

【代码实现】

import java.util.Stack;class TwoStacksQueue{    public Stack<Integer> stackPush;    public Stack<Integer> stackPop;    public TwoStacksQueue(){        stackPush = new Stack<Integer>();        stackPop = new Stack<Integer>();    }    public void add(int pushInt) {        stackPush.push(pushInt);    }    public int poll(){        if(stackPop.empty() && stackPush.empty()){            throw new RuntimeException("Queue is empty.");        }else if(stackPop.empty()){            while(!stackPush.empty()){                stackPop.push(stackPush.pop());            }        }        return stackPop.pop();    }    public int peek(){        if(stackPop.empty() && stackPush.empty()){            throw new RuntimeException("Queue is empty.");        }else if(stackPop.empty()){            while(!stackPush.empty()){                stackPop.push(stackPush.pop());            }        }        return stackPop.peek();    }}
原创粉丝点击