3.用2个栈实现队列

题目描述:用两个栈实现一个队列,实现对了的两个函数 appendTail 和 deleteHead,分别完成在队列尾插入结点和在队列头部删除结点的功能。
目的:体会下不同条件需要不同处理的妙处
代码:
package com.guanstudy;

import java.util.Stack;

/**

  • @date 2018年4月9日
  • @author junpu.guan
  • @param
  • @Description: TODO

**/
public class Test {

private Stack stack1 = new Stack();
private Stack stack2 = new Stack();

public void appendTail(T t) {
    stack1.push(t);
}

public T deleteHead() throws Exception {
    if (stack2.isEmpty()) {
        while (!stack1.isEmpty()) {
            stack2.push(stack1.pop());
        }
    }
    if (stack2.isEmpty()) {
        throw new Exception("队列为空,不能删除");
    }
    return stack2.pop();
}

public static void main(String args[]) throws Exception {
    Test t7 = new Test<>();
    t7.appendTail("1");
    t7.appendTail("2");
    t7.appendTail("3");
    System.out.println(t7.deleteHead());
    t7.appendTail("4");
    System.out.println(t7.deleteHead());
    System.out.println(t7.deleteHead());
}

}

你可能感兴趣的:(3.用2个栈实现队列)