題目
棧是一種常見的數據結構,其特點是 先進後出
,也就是說最先放進去的元素,需要到最後才能取出來。
請使用 列表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