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