目錄
棧的定義
棧的基本操作
小練習棧遵循後進先出(last in first out),現實生活中也有不少這樣的例子,比如在學校食堂吃完飯時,你把盤子放到桌子上,疊起來之後,阿姨過來拿盤子出去洗,假如是手洗,那肯定是先從最上面的盤子開始拿來洗的,而最上面的盤子是最後放上去的,卻是第乙個 被拿出來的,這就是後進先出,與之相同的還有檢視網頁,比如你查詢「stack」,往往你會開啟好幾張網頁鏈結,然後再繼續開,你一開始看的網頁應該就是你最後開啟的。
class
node
(object):
def__init__
(self, data, next = none):
self.data = data
self.next = next
class
stack
(object):
def__init__
(self, top = none):
self.top = top
defpush
(self,data):
#建立新的節點放到棧頂
self.top = node(data, self.top)
defpop(self):
#拿出棧頂元素,原來的棧發生改變
if self.top is
none:
return
none
data = self.top.data
self.top = self.top.next
return data
defpeek
(self):
#檢視棧頂元素,原來的棧不變
return self.top.data if self.top is
notnone
else
none
defisempty
(self):
return self.peek() is
none
if __name__ == "__main__":
stack = stack()
stack1 = stack.push(1)
stack1 = stack.push(2)
print stack.peek(), #檢視棧頂元素
stack.pop()
print stack.peek()
#輸出: 2 1
使用棧,使得輸入字串元素倒轉,即:"a
pple
"→"el
ppa"
def寫不出或報錯的人,主要有以下原因:revstrings
(mystr):
stack = stack()
for ch in mystr:
stack.push(ch)
revstr = ''
while
not stack.isempty():
revstr += stack.pop()
return revstr
Python資料結構之棧
容器 作為容器資料結構,它們保證存入的元素被儲存在容器裡,尚未明確刪除的元素總是可以訪問,而取出並刪除的元素就不再存在於容器中了 棧 棧主要用於在計算過程中儲存臨時的資料,這些資料是計算中發現或者產生的,在後面的計算中可能需要使用它們 棧是最簡單的快取結構,它支援資料項的儲存和訪問,不支援資料項之間...
Python資料結構之 棧
什麼是棧?棧是一種先進先出的儲存器,只可以通過乙個入口訪問其中的資料項。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧 入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素 從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素...
python資料結構之棧
1.棧的特點 先出,實際上就是對順序表和煉表的進一步封裝。棧可以用順序表表示,也可以用鍊錶表示。用鍊錶構造棧 方法一 在鍊錶頭部新增元素,並在頭部取出元素,相應的時間複雜度為o 1 方法二 在鍊錶尾部新增元素,並在尾部取出元素,因為要遍歷整個鍊錶,相應的時間複雜度為o n 因此,選用方法一。3.關於...