python資料結構之棧(stack)

2021-08-14 13:52:25 字數 1538 閱讀 7573

目錄

棧的定義

棧的基本操作

小練習棧遵循後進先出(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.關於...