11 資料結構 棧(筆記)

2021-10-06 09:17:38 字數 935 閱讀 5099

棧是線性表的進一步封裝,棧可以用順序表實現,也可以用鍊錶實現。(這裡主要是用順序表或者是鍊錶來儲存資料元素)

實現以下操作。

"""棧"""

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.棧的構造 申請一定大小的空間...