資料結構 之 '棧'
阿新 • • 發佈:2020-07-15
棧
"棧“者,儲存貨物或供旅客住宿的地方,可引申為倉庫、中轉站,所以引入到計算機領域裡,就是指資料暫時儲存的地方,所以才有進棧、出棧的說法
。
一、概念
棧(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 # 棧這種資料結構的特點即:後進先出