N5-用两个栈来实现一个队列

题目描述

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
import java.util.Stack;
/**
 * 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
 * @author Sonya
 *
 *进队列时,直接进入栈一中,出栈时先将栈一中的所有按照出栈次序依序压入栈2中,弹出栈2首个元素
 *即为第一个入队列的元素,然后再将2所有的元素依次压入栈一中
 */
public class N5_Two_stack_to_queue {
	 Stack<Integer> stack1 = new Stack<Integer>();
	 Stack<Integer> stack2 = new Stack<Integer>();
	    
	    public void push(int node) {
	        stack1.add(node);
	    }
	    
	    public int pop() {
	    	
	    	int a;
	    	while(!stack1.isEmpty()) {
	    		stack2.add(stack1.pop());
	    	}
	    	a=stack2.pop();
	    	while(!stack2.isEmpty()) {
	    		stack1.add(stack2.pop());
	    	}
			return a;
	    
	    }

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		N5_Two_stack_to_queue n5=new N5_Two_stack_to_queue();
		n5.push(1);
		n5.push(2);
		System.out.println(n5.pop());
		n5.push(3);
		System.out.println(n5.pop());
		System.out.println(n5.pop());
		
		
	}

}

  

posted @ 2019-05-11 15:53  柯汐  阅读(165)  评论(0编辑  收藏  举报