資料結構(四)python使用順序表實現棧
阿新 • • 發佈:2019-01-11
概念:
棧(stack),有些地方稱為堆疊,是一種容器,可存入資料元素、訪問元素、刪除元素,它的特點在於只能允許在容器的一端(稱為棧頂端指標,英語:top)進行加入資料(英語:push)和輸出資料(英語:pop)的運算。沒有了位置概念,保證任何時候可以訪問、刪除的元素都是此前最後存入的那個元素,按照後進先出(LIFO, Last In First Out)的原理運作。
注意:棧不是資料結構,只是某些資料結構在用的時候具有棧的特點,可以稱之為棧,可以理解為是一個容器,即、滿足先進先出的存取方式的容器。
應用場景:
函式呼叫
如:函式A呼叫B,B呼叫C,最後呼叫的C,但執行時是C先執行,返回,然後B執行,返回,A再執行,返回;在呼叫當前函式時會將區域性變數和引數入棧,函式返回時會銷燬當前函式的區域性變數和引數,出棧。
python使用順序表實現棧:
class Stack(object): def __init__(self): self.stack = [] def push(self, item): """新增一個新的元素item到棧頂""" self.stack.append(item) def pop(self): """彈出棧頂元素""" return self.stack.pop() def is_empty(self): """判斷棧是否為空""" return self.stack == [] def peek(self): """返回棧頂元素""" if self.is_empty(): return None return self.stack[-1] def size(self): """返回棧的元素個數""" return len(self.stack) if __name__ == '__main__': st = Stack() st.push(1) st.push(2) st.push(3) st.push(4) print(st.pop()) print(st.peek()) print(st.pop())
如有錯誤,請指出。