
package com.cxz.question7; import java.util.Stack; /** * 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail 和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。 * @author CXZ * */ public class Demo7 { public static class MList<T> { //插入栈 private Stack<T> stack1 = new Stack<>(); //弹出栈 private Stack<T> stack2 = new Stack<>(); public MList() { } //添加操作,在队列尾部插入节点 public void appendTail(T t) { stack1.add(t); } //删除操作,在队列头部删除节点 public T deleteHead() { if (stack2.isEmpty()) { while (!stack1.isEmpty()) { stack2.add(stack1.pop()); } } if (stack2.isEmpty()) { throw new RuntimeException("No more element"); } return stack2.pop(); } } }