Python實現棧,及棧的應用例項

2021-07-27 17:18:07 字數 1542 閱讀 5068

棧(stack),是限定在表尾進行插入或刪除操作的線性表。因此,對於棧來說,表尾端有其特殊含義,稱為棧頂(top),表頭被稱為棧底(bottom)。

#構造空棧

def__init__

(self,size):

self.size=size

self.stack=

#輸出棧

def__str__

(self):

return str(self.stack)

#獲取棧當前的大小

defgetsize

(self):

return len(self.stack)

#元素入棧

defpush

(self,x):

if self.isfull():

raise exception('stack is full!')

#出棧defpop

(self):

if self.isempty():

raise exception('stack is empty!')

topelement=self.stack[-1]

self.stack.remove(topelement)

return topelement

#判斷棧空

defisempty

(self):

if len(self.stack)==0:

return

true

return

false

#判斷棧空

defisfull

(self):

if len(self.stack)==self.size:

return

true

return

false

測試**:

if __name__ == '__main__' :

stacktest = stack(10)

for i in range(9) :

stacktest.push(i)

print (stacktest.getsize())

print (stacktest.isempty())

print (stacktest.isfull())

print (stacktest)

for i in range(6) :

stacktest.pop()

print (stacktest.getsize())

print (stacktest)

測試結果:

棧的實現及應用

1.棧定義 棧又稱堆疊,是一種運算受限的線性表,限制是僅僅允許在表的另外一端進行插入和刪除運算。2.特點 後進先出 cpu快取利用率相對較高 不允許隨意訪問 3.實現方式 棧有兩種實現方式,一種是順序儲存,和陣列類似。一種是鏈式儲存,和單鏈表類似。這是在2013編譯器下 棧裡面有以下幾種函式 voi...

棧的演算法實現及應用

1.棧的順序儲存結構 1 編寫程式,用不同的儲存方法,實現棧的基本操作。2 判斷乙個表示式中的括號 僅有一種括號,小 中或大括號 是否配對。編寫並實現它的演算法。3 若表示式中既有小括號,又有大括號 或中括號 且允許互相巢狀,但不能交叉,寫出判斷這樣的表示式是否合法的演算法。如 2 3 4 3 為合...

用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 編歷棧...