Java两个栈来实现一个队列

来源:互联网 发布:《最强淘宝系统》 编辑:程序博客网 时间:2024/05/18 04:50

用两个栈来实现一个队列,完成队列的Push和Pop操作。
<分析>
<用两个栈实现一个队列的功能>
入队:将元素进栈A
出队:判断栈B是否为空,如果为空,则将栈A中所有元素pop,并push进栈B,栈B出栈;如果不为空,栈B直接出栈。

import java.util.*;/** * 用两个栈来实现一个队列,完成队列的Push和Pop操作。 *//** * @author 16026 * */class NoElementException extends Exception {    /**     *      */    public NoElementException() {        super();        // TODO Auto-generated constructor stub    }    NoElementException(String str) {        super(str);    }}public class DoubleStackToQueue<T> {    Stack<T> stack1 = new Stack<T>();    Stack<T> stack2 = new Stack<T>();    //入队操作    public void push(T t) {        stack1.push(t);    }    //出队操作    public T pop() throws Exception {        if (stack2.isEmpty()) {            while (!stack1.isEmpty()) {                stack2.push(stack1.pop());            }        }        if (stack2.isEmpty())            throw new NoElementException("队列中没有元素!");        return stack2.pop();    }}
0 0
原创粉丝点击