1.棧stack通常的操作:
stack() 建立乙個空的棧物件
push() 把乙個元素新增到棧的最頂層
pop() 刪除棧最頂層的元素,並返回這個元素
peek() 返回最頂層的元素,並不刪除它
isempty() 判斷棧是否為空
size() 返回棧中元素的個數
2.以 pat的pop sequence為例,原題位於
分析:根據給定的pop序列, 還原push 和 pop的過程, 因為乙個pop sequence 只能對應乙個唯一的push pop的操作過程, 所以到最後能還原那麼這個pop sequence是可行的, 否則不可能, 比如: 3, 2, 1, 7, 5, 6, 4. 這個序列, 那麼我們看第乙個3, 要pop出3, 那麼肯定要先push 1, push 2, push 3, pop 3, 接下來看2, 此時棧頂確實是2那麼 pop 2, 接下來1類似, 好了下面乙個是7, 那麼我們必須要先push 4, push 5, push 6, push 7, 然後pop 7可以得到乙個7, 接下來需要5,但是此時棧頂元素是6, 所以這個sequence就是不可能了。 這樣的演算法基本上是乙個線性演算法。
參考:
用python實現棧 Python實現棧的方法
usr bin env python 定義乙個列表來模擬棧 stack def pu 出棧,用到了pop 函式 def popit if len stack 0 print cannot pop from an empty stack else print removed stack.pop 編歷棧...
python如何實現棧 Python實現棧的方法
usr bin env python 定義乙個列表來模擬棧 stack def pu 出棧,用到了pop 函式 def popit if len stack 0 print cannot pop from an empty stack else print removed stack.pop 編歷棧...
Python 棧的實現
棧的工作原理 1.入棧 2.出棧 3.棧頂元素 4.棧長度 5.棧是否為空 列表法 stack info 棧操作 1.入棧 2.出棧 3.棧頂元素 4.棧長度 5.棧是否為空 while true print info select input 請輸入你的選擇 if select 1 item in...