棧(stack)又名堆疊,它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。棧的特點:先進後出。
"""棧"""
def __init__(self):
self.__item =
def is_empty(self):
"""判斷是否為空"""
return self.__item ==
def size(self):
"""返回棧的大小"""
return self.__item.__len__()
def push(self, item):
"""插入元素"""
def pop(self):
"""彈出元素"""
return self.__item.pop()
def peek(self):
"""返回棧頂元素"""
return self.__item[len(self.__item) - 1]
if __name__ == '__main__':
s = stack()
print(s.is_empty())
print(s.size())
s.push(100)
s.push(200)
s.push(300)
print(s.is_empty())
print(s.size())
print(s.pop())
print(s.pop())
print(s.pop())
s.push(400)
s.push(500)
s.push(600)
print(s.peek())
python線性資料結構之棧的實現
資料結構 帶有結構特性的資料元素的集合。常見的資料結構 集合,線性結構,樹形結構,圖形結構等。線性結構 表中各個結點具有線性關係。常見的線性結構 棧stack 佇列queue 雙端佇列deque和列表list 棧stack 一次有序的資料項集合,在棧中,資料項的加入和移除都僅發生在同一端。這一端叫棧...
資料結構之棧實現
ps 棧用類實現比較好,可以同時管理多種資料結構。不過對於剛剛接觸的我來說,就看著數,按著書上的流程走吧。我會盡力把棧的特點講解清楚,以後有了更深入的了解,我會再來補充的。逆波蘭表示法 是一種將運算子寫在運算元後面的描述程式 算式 的方法。舉個例子,我們平常用中綴表示法描述的算式 1 2 5 4 改...
資料結構Python實現 棧
有些地方稱為堆疊。可以存入 訪問 刪除元素,其只能允許在容器的一端進行載入資料和輸出資料,任何時候訪問和刪除的資料都是最好存入的那個資料,預設了訪問的順序。其原理為後進先出。pop 彈出棧頂元素 peek 返回棧頂元素,只是得到其數值並不彈出來 stack 建立乙個新的空棧 size 返回棧的元素個...