Python編程題30--用列表實現棧

題目

棧是一種常見的數據結構,其特點是 先進後出,也就是說最先放進去的元素,需要到最後才能取出來。

請使用 列表list 模擬實現棧的下列操作:

  • push(x) -- 將元素 x 壓入棧頂
  • pop() -- 移除棧頂元素
  • top() -- 獲取棧頂元素
  • empty() -- 判斷棧是否爲空
  • size() -- 獲取棧的長度

說明:假設每次調用 pop 和 top 都能保證棧不爲空。

代碼實現

class MyStack:

    def __init__(self):
        self.s = []

    def push(self, x):
        self.s.append(x)

    def pop(self):
        self.s.pop()

    def top(self):
        return self.s[-1]

    def empty(self):
        return self.s == []

    def size(self):
        return len(self.s)

測試過程

if __name__ == '__main__':
    stack = MyStack()
    stack.push(11)  # 入棧
    stack.push(22)  # 入棧
    print(stack.top())
    print(stack.size())
    stack.pop()  # 出棧
    print(stack.empty())
    print(stack.top())
    stack.pop()  # 出棧
    print(stack.size())
    print(stack.empty())

執行代碼後,得到如下結果:

22
2
False
11
0
True
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章