棧這種資料結構是一種運算受限的線性表。。。
棧
"棧“者,存儲貨物或供旅客住宿的地方,可引申為倉庫、中轉站,是以引入到計算機領域裡,就是指資料暫時存儲的地方,是以才有進棧、出棧的說法
。
一、概念
棧(stack)又名堆棧,它是一種運算受限的線性表。限定僅在表尾進行插入和删除操作的線性表,這一端被稱為棧頂,相對地,把另一端稱為棧底。向一個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從一個棧删除元素又稱作出棧或退棧,它是把棧頂元素删除掉,使其下方的元素成為新的棧頂元素。
二、棧的特點:後進先出
棧的代碼實作
class Stack():
def __init__(self):
"""
初始化棧(以清單充當此資料結構的容器)
"""
self.items = []
def push(self, item):
"""
進棧(由棧頂至棧底添加)
:param item: 被添加元素
:return:
"""
self.items.append(item)
def pop(self):
"""
出棧(由棧頂向棧底取元素)
:return: 取出的元素
"""
return self.items.pop()
def isEmpty(self):
"""
空棧
:return: 若為空棧,則傳回空清單
"""
return self.items == []
def size(self):
"""
棧中元素個數
:return:
"""
return len(self.items)
def peek(self):
"""
得到棧頂元素的下标
:return:
"""
return len(self.items) - 1
if __name__ == '__main__':
s = Stack()
s.push(1)
s.push(2)
s.push(3)
print(s.pop())
print(s.pop())
print(s.pop())
# 3
# 2
# 1
# 棧這種資料結構的特點即:後進先出
抟扶搖而上者九萬裡