判斷棧是否為空 資料結構與演算法 棧

2021-10-12 09:16:36 字數 1121 閱讀 1593

棧(stack),有些地方稱為堆疊,是一種容器,可存入資料元素、訪問元素、刪除元素,它的特點在於只能允許在容器的一端(稱為棧頂端指標,英語:top)進行加入資料(英語:push)和輸出資料(英語:pop)的運算。沒有了位置概念,保證任何時候可以訪問、刪除的元素都是此前最後存入的那個元素,確定了一種預設的訪問順序。

由於棧資料結構只允許在一端進行操作,因而按照後進先出(lifo, last in first out)的原理運作。

"""棧"""

def __init__(self):

self.items =

def is_empty(self):

"""判斷是否為空"""

return self.items ==

def push(self, item):

"""加入元素"""

def pop(self):

"""彈出元素"""

return self.items.pop()

def peek(self):

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

return self.items[len(self.items)-1]

def size(self):

"""返回棧的大小"""

return len(self.items)

if __name__ == "__main__":

stack = stack()

stack.push("hello")

stack.push("world")

stack.push("itcast")

print(stack.size())

print(stack.peek())

print(stack.pop())

print(stack.pop())

print(stack.pop())

判斷棧是否為空 棧與佇列簡介

棧與佇列和陣列 鍊錶 樹這幾種資料結構不太一樣。棧與佇列主要是做為程式設計師的工具來使用,它們主要做為構思演算法的輔助工具,而不是完全的資料儲存工具。它們的生命週期比陣列那些要短得多,在程式執行期間它們才會被建立,任務執行完就會被銷毀。棧是一種只能在一端進行插入和刪除資料的資料結構,這一端被稱為棧頂...

資料結構 判斷棧的出棧順序是否合理

題目 設乙個棧的輸入序列為1,2,3 n,編寫演算法,判斷序列,p1,p2,pn是否是合理的棧輸出序列 思想 將預期的出棧順序用乙個輔助棧儲存起來,然後將元素按照入棧的順序依次存入,若元素等於輔助棧的棧頂元素,則可以不用存入 當做出棧一樣 然後考慮下乙個要入棧的元素,按照這樣的操作之後,等到所有元素...

資料結構與演算法《棧》

概念 棧 stack 又名堆疊,它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧 入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素 從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使...