import java.util.*; /** * 思路:需要修改peek()和pop(),以相反顺序执行操作。可以利用第二个栈来反转元素的次序。 * stackNewest顶端为最新元素,stackOldest顶端为最旧元素,利用两个栈的元素的转移来实现。 * */ public class MyQuene1 { Stack stackNewest ,stackOldest ; public MyQuene1(){ stackNewest= new Stack(); stackOldest= new Stack(); } public int size(){ return stackNewest.size()+ stackOldest.size(); } public void add(Object value){ stackNewest.push(value); } //返回最旧元素 public Object peek(){ this.shiftStack(); return stackOldest.peek(); } //删除最旧元素 public Object remove(){ this.shiftStack(); return stackOldest.pop(); } public void shiftStack(){ if( stackOldest.isEmpty()) while(! stackNewest.isEmpty()) stackOldest.push(stackNewest.pop()); } }
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/shangqing1123/article/details/47279391