public class Stack2Queue { /** * 用栈的入栈和出栈 * 来实现队列的入队和出队 * stack1是入栈的,stack2是出栈的。 入队列:直接压入stack1即可 出队列:如果stack2不为空,把stack2中的栈顶元素直接弹出; 否则,把stack1的所有元素全部弹出压入stack2中,再弹出stack2的栈顶元素 * */ Stack stack1 = new Stack(); Stack stack2 = new Stack(); public void add(Object o) { stack1.push(o); } public Object poll() { Object o = null; if(stack2.length()==0) { //把stack1的数据放入stack2,留下最后一个数据 while(stack1.length()>1) { stack2.push(stack1.pop()); } if(stack1.length()==1) { //把stack1的留下的那个数据返回出去 o = stack1.pop(); } }else { o = stack2.pop(); } return o; } public int length() { return stack1.length()+stack2.length(); } }
数据结构-用栈实现队列
最新推荐文章于 2022-12-18 15:33:32 发布