Python 棧
python 棧
在英語詞典中,單詞堆意味著將對象放在另一個上。在這個數據結構中分配內存的方式是一樣的。它以類似的方式存儲數據元素,因為一堆盤子在廚房中一個在另一個之上存儲。所以棧數據strcuture允許一端的操作可以稱為棧頂。我們可以添加元素或僅從堆棧中移除元素。
在堆棧中,順序排列的最后一個元素將首先出現,因為我們只能從堆棧頂部移除。這種功能稱為后進先出(lifo)功能。添加和刪??除元素的操作稱為 push 和 pop 。在下面的程序中,我們將它實現為add和remove函數。我們聲明一個空列表并使用append()和pop()方法添加和刪除數據元素。
推入堆棧
class stack: def __init__(self): self.stack = [] def add(self, dataval): # use list append method to add element if dataval not in self.stack: self.stack.append(dataval) return true else: return false # use peek to look at the top of the stack def peek(self): return self.stack[0] astack = stack() astack.add("mon") astack.add("tue") astack.peek() print(astack.peek()) astack.add("wed") astack.add("thu") print(astack.peek())
當上面的代碼被執行時,它會產生以下結果:
mon mon
來自stack的pop
正如我們所知道的,我們只能從堆棧中移除太多的數據元素,我們實現了一個可以實現這一點的python程序。以下程序中的remove函數返回最上面的元素。我們首先通過計算堆棧的大小來檢查頂層元素,然后使用內置的pop()方法找出最頂層的元素。
class stack: def __init__(self): self.stack = [] def add(self, dataval): # use list append method to add element if dataval not in self.stack: self.stack.append(dataval) return true else: return false # use list pop method to remove element def remove(self): if len(self.stack) <= 0: return ("no element in the stack") else: return self.stack.pop() astack = stack() astack.add("mon") astack.add("tue") print(astack.remove()) astack.add("wed") astack.add("thu") print(astack.remove())
當上面的代碼被執行時,它會產生以下結果:
tue thu