棧是線性表的進一步封裝,棧可以用順序表實現,也可以用鍊錶實現。(這裡主要是用順序表或者是鍊錶來儲存資料元素)
實現以下操作。
"""棧"""
def __init__(self):
self.__items = #使用列表實現棧
#self.__item=singlelinklist() #使用單鏈表實現棧
def is_empty(self):
"""判斷是否為空"""
return self.__items ==
def push(self, item):
"""加入元素"""
#self.__item.insert(0,item) #o(n)
def pop(self):
"""彈出元素"""
return self.__items.pop()
# return self.__items.pop(0)
def peek(self):
"""返回棧頂元素"""
return self.__items[len(self.__items)-1]
# 或 return self.__items[-1]
def size(self):
"""返回棧的大小"""
return len(self.__items)
再加入元素和彈出元素,有兩種形式,一種是從尾部,一種是從頭部,但兩者的時間複雜度是不一樣的。
資料結構筆記 棧
一 棧的邏輯結構 棧 限定僅在表尾進行插入和刪除操作的線性表。空棧 不含任何資料元素的棧。允許插入和刪除的一端稱為 棧頂,另一端稱為 棧底。示意圖 二 順序棧的儲存結構及實現 其中top為順序棧棧頂指標。進棧操作 top 出棧操作 top 判斷棧空 top 1 棧滿 top maxsize 1 co...
資料結構筆記 棧
作用s.empty 如果棧為空則返回true,否則返回false s.size 返回棧中元素的個數 s.top 返回棧頂元素,但不刪除該元素 s.pop 彈出棧頂元素,但不返回其值 s.push 將元素壓入棧頂 include include 棧需要新增標頭檔案 using namespace st...
資料結構筆記 棧
1.棧的構造 申請給定大小空間,將棧頂指標指向棧底。2.棧的初始化 將棧的棧頂指標指向棧底。3.棧的插入 先檢查是否棧滿,若棧滿,則報錯。否則將棧頂指標上移乙個單位,將元素插入棧頂。4。棧的刪除 先檢查是否棧空。若棧空,則報錯。否則,刪去棧頂元素,將棧頂下移乙個單位。1.棧的構造 申請一定大小的空間...