天天看點

用兩個棧實作隊列

題目描述

用兩個棧來實作一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型。

解答

第一個棧用來進行入棧操作。

第二個棧進行出棧操作。

當第二個棧為空時,将第一個棧的元素全部倒序加到第二個棧裡面。

# coding:utf-8

class Solution:
    def __init__(self):
        self.l1 = []
        self.l2 = []

    def push(self, node):
        # write code here
        self.l1.append(node)
    def pop(self):
        if self.l2 == []:
            while self.l1:
                self.l2.append(self.l1.pop())
        if self.l2 == []:
            return "空"
        else:
            return self.l2.pop()


s = Solution()

s.push(1)
s.push(2)
s.push(3)
print s.pop()
print s.pop()
s.push(4)
print s.pop()
print s.pop()
print s.pop()
print s.pop()      

結束!