5 用两个栈实现队列

题目描述

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
 1 import java.util.Stack;
 2  
 3 public class Solution {
 4     Stack<Integer> stack1 = new Stack<Integer>();
 5     Stack<Integer> stack2 = new Stack<Integer>();
 6      
 7     public void push(int node) {
 8         stack1.push(node);
 9     }
10      
11     public int pop() {
12         if(stack1.empty()&& stack2.empty())
13             throw new RuntimeException("Queue is empty!");
14          
15         if(stack2.empty()){
16             while(!stack1.empty()){
17                 stack2.push(stack1.pop());
18          }
19         }
20         return stack2.pop();
21     }
22 }

 

 

20180303

 1 # -*- coding:utf-8 -*-
 2 class Solution:
 3     def __init__(self):
 4         self.stack1=[]
 5         self.stack2=[]
 6     def push(self, node):
 7         # write code here
 8         self.stack1.append(node)
 9     def pop(self):
10         # return xx
11         if self.stack2==[]:
12             while self.stack1!=[]:
13                 self.stack2.append(self.stack1.pop(-1))
14         return self.stack2.pop(-1)

 

posted @ 2017-10-31 22:04  乐乐章  阅读(149)  评论(0编辑  收藏  举报