两个栈实现队列

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

 1 public class Solution {
 2     Stack<Integer> stack1 = new Stack<Integer>();
 3     Stack<Integer> stack2 = new Stack<Integer>();
 4     
 5     public void push(int node) {
 6         stack1.push(node);
 7     }
 8     
 9     public int pop() {
10         if(stack2.size()==0){
11             while(stack1.size()!=0){
12                 stack2.push(stack1.pop());
13             }
14        }
15         return stack2.pop();
16     }
17 }

 相关题目:两个栈实现一个队列

 1 public class Solution {
 2     Queue<Integer> queue1= new Queue<Integer>();
 3     Queue<Integer> queue2= new Queue<Integer>();
 4     
 5     public void push(int node) {
 6          if(queue1.isEmpty() && queue2.isEmpty()){
 7             queue1.add(element);
 8         }
 9 
10         if(queue1.isEmpty()){
11             queue2.add(element);
12         }
13  
14         if(queue2.isEmpty()){
15             queue1.add(element);
16         }
17     }
18     
19     public int pop() {
20        if(queue1.isEmpty() && queue2.isEmpty()){
21             return;
22         }
23     
24         if(queue1.isEmpty()){
25         while(queue2.size()>1){
26                  queue1.add(queue2.poll());
27              }
28             return queue2.poll();
29        }
30 
31       if(queue2.isEmpty()){
32         while(queue1.size()>1){
33                  queue2.add(queue1.poll());
34              }
35             return queue1.poll();
36        }
37 
38     }
39 }

 

posted @ 2019-05-08 16:08  JingMo  阅读(231)  评论(0)    收藏  举报