劍指 offer_第五題_用兩個棧實現隊列

平臺

牛客網

語言

python2.7.3

作業內容

題目描述

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

題目理解

什麼是棧?

棧(有時稱爲 “後進先出棧”)是一個項的有序集合,這種排序原則有時被稱爲 LIFO(後進先出), 其中添加移除新項總髮生在同一端。這一端通常稱爲 “頂部”。與頂部對應的端稱爲 “底部”。

什麼是隊列?

隊列是項的有序結合,其中添加新項的一端稱爲隊尾,移除項的一端稱爲隊首。這種排序原則有時被稱爲 FIFO(先進先出)當一個元素從隊尾進入隊列時,一直向隊首移動,直到它成爲下一個需要移除的元素爲止。

push:將元素放進隊尾

pop: 將隊頂的元素刪除,並返回

解題思路

定義棧

定義 push 和 pop 函數

程序

# -*- coding:utf-8 -*-
class Solution:
    def __init__(self):
        self.stack1 = []  #定義兩個stack,
        self.stack2 = []
    def push(self, node):        
        self.stack1.append(node) #往隊列中添加元素,將元素放進隊尾
    def pop(self): # 沒看懂啊
        
        if len(self.stack2):
            return self.stack2.pop()
        while(self.stack1):
            self.stack2.append(self.stack1.pop())
        return self.stack2.pop()    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章