用两个栈实现队列

第五题:用两个栈实现队列

 

题目描述

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

 

 

解析:使用两个栈空间,一个作为存储而使用,一个作为弹出而使用

例如: 1 -> 5 -> 6 -> 7 -> 8

用两个栈实现队列_第1张图片

 

具体实现代码如下:

public class Solution {  
    Stack stack1 = new Stack();  
    Stack stack2 = new Stack();  
      
    public void push(int node) {  
        stack1.push(node);  
    }  
      
    public int pop() {  
        if (stack1.isEmpty() && stack2.isEmpty()){  
            throw new RuntimeException("Queue is empty");  
        }else if(stack2.isEmpty()){  
            while(!stack1.isEmpty()){  
                stack2.push(stack1.pop());  
            }  
        }  
        return stack2.pop();  
    }  
}  

 

NowCoder(Online Coding, Please Click)

 

 

 

你可能感兴趣的:(剑指offer,剑指offer)