剑指offer5:用两个栈实现队列

Posted zlz099

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer5:用两个栈实现队列相关的知识,希望对你有一定的参考价值。

题目描述:

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

思路:

基本操作,栈是后进先出,队列是先进先出,两个栈正好反反得正

 1 import java.util.Stack;
 2 public class Lianggezhanduilie {
 3     Stack<Integer> stack1 = new Stack<Integer>();
 4     Stack<Integer> stack2 = new Stack<Integer>();
 5        
 6     public void push(int node) {
 7        stack1.push(node);
 8     }
 9        
10     public int pop() {
11         while(stack2.isEmpty()){
12             while(!stack1.isEmpty()){
13                 stack2.push(stack1.pop());    
14             }
15         }
16         int ans = stack2.pop();
17     return ans;
18        
19     }
20     public static void main(String[] args) {
21         // TODO Auto-generated method stub
22 
23     }
24 
25 }

 

以上是关于剑指offer5:用两个栈实现队列的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer5

用两个栈实现队列-剑指Offer

《剑指Offer——面试题9:用两个栈实现队列》代码

剑指offer-用两个栈实现队列

剑指offer---用两个栈实现队列

《剑指offer》— JavaScript用两个栈实现队列