python資料結構與演算法(10)
阿新 • • 發佈:2018-11-28
棧
棧(stack),有些地⽅稱為堆疊,是⼀種容器,可存⼊資料元素、訪問元 素、刪除元素,它的特點在於只能允許在容器的⼀端(稱為棧頂端指標,英 語:top)進⾏加⼊資料(英語:push)和輸出資料(英語:pop)的運算。 沒有了位置概念,保證任何時候可以訪問、刪除的元素都是此前最後存⼊的 那個元素,確定了⼀種預設的訪問順序。
由於棧資料結構只允許在⼀端進⾏操作,因⽽按照後進先出(LIFO, Last In First Out)的原理運作。
棧結構實現
棧可以⽤順序表實現,也可以⽤連結串列實現。
棧的操作
Stack() 建立⼀個新的空棧 push(item) 新增⼀個新的元素item到棧頂 pop() 彈出棧頂元素 peek() 返回棧頂元素 is_empty() 判斷棧是否為空 size() 返回棧的元素個數
class Stack(object): """棧""" def __init__(self): self.items = [] def is_empty(self): """判斷是否為空""" return self.items == [] def push(self, item): """加⼊元素""" self.items.append(item) def pop(self): """彈出元素""" return self.items.pop() def peek(self): """返回棧頂元素""" return self.items[len(self.items)-1] def size(self): """返回棧的⼤⼩""" return len(self.items) if __name__ == "__main__": stack = Stack() stack.push("hello") stack.push("world") stack.push("itcast") print stack.size() print stack.peek() print stack.pop() print stack.pop() print stack.pop()
執⾏過程如下: