Python資料結構與演算法之 棧結構的實現

2021-10-03 10:26:35 字數 1134 閱讀 1515

壓棧(入棧):push(item) 新增乙個新的元素item到棧頂。

彈出(出棧):pop() 彈出棧頂元素。

peek() 返回棧頂元素。

is_empty() 判斷棧是否為空

size() 返回棧的元素個數。

# -*- coding: utf-8 -*-

class

stack

(object):

'''棧'''

def__init__

(self)

: self.__list =

defpush

(self, item)

:'''新增乙個新元素item到棧頂'''

#o(1)

#self.__list.insert(0, item) #順序表儲存複雜度高。o(n)

defpop

(self)

:"""彈出棧頂元素"""

return self.__list.pop(

)#self.__list.pop(0)

defpeek

(self)

:"""返回棧頂元素"""

if self.__list:

return self.__list[-1

]else

:return

none

defis_empty

(self)

:"""判斷棧是否為空"""

#return not self.__list

return self.__list ==

defsize

(self)

:"""返回棧的元素個數"""

return

len(self.__list)

if __name__ ==

"__main__"

: s = stack(

) s.push(1)

s.push(2)

s.push(3)

print

(s.pop())

print

(s.pop())

print

(s.pop(

))

執行結果:32

1

《資料結構與演算法》之棧

資料結構與演算法 之鍊錶 資料結構與演算法 之佇列 資料結構與演算法 之排序 資料結構與演算法 之二分查詢 資料結構與演算法 之二叉樹 關於 棧 我有乙個非常貼切的例子,就是一摞疊在一起的盤子。我們平時放盤子的時候,都是從下往上乙個乙個放 取的時候,我們也是從上往下乙個乙個地依次取,不能從中間任意抽...

資料結構與演算法之棧

中綴表示式實現多位數的計算 實現 public class calculatordemo else 否則直接入符號棧 else 如果是數字直接入數棧 else else index if index expresion.length 表示式掃瞄完後就順序的從數棧和符號棧中pop出相應的數字和符號並執...

資料結構與演算法之棧

字首表示式 求值 從右至左掃瞄表示式,遇到數字時,將數字壓入堆疊,遇到運算子時,彈出棧頂的兩個數,用運算子對它們做相應的計算 棧頂元素 和 次頂元素 並將結果入棧 重複上述過程直到表示式最左端,最後運算得出的值即為表示式的結果 例如 3 4 5 6 對應的字首表示式就是 3 4 5 6 針對字首表示...