順序儲存 資料結構 棧

2022-08-24 05:09:12 字數 1113 閱讀 9312

備註:以列表為基礎進行對此的封裝,以便達到棧的效果及作用

1"""

2棧的順序儲存結構

3重點**

4"""56

#自定義棧異常

7class

stackerror(exception):

8pass910

#基於列表實現順序棧

11class

sstack:

12def

__init__

(self):13#

約定列表的最後乙個元素為棧頂

14 self._elems =

1516

deftop(self):

17if

notself._elems:

18raise stackerror("

stack is empty")

19return self._elems[-1]

2021

#判斷棧是否為空

22def

is_empty(self):

23return self._elems ==

2425#入棧

26def

push(self,elem):

272829#

出棧30

defpop(self):

31if

notself._elems:

32raise stackerror("

stack is empty")

33return

self._elems.pop()

3435

36if

__name__ == "

__main__":

37 st = sstack() #

初始化棧38#

print(st.top())

39print

(st.is_empty())

40 st.push(10)

41 st.push(20)

42 st.push(30)

43while

notst.is_empty():

44print(st.pop())

資料結構(棧 順序儲存 )

棧是特殊的線性表,規定插入和刪除在同一端進行 進行插入和刪除的那一端成為棧頂,另一端為棧底 插入為進棧,刪除為出棧 先進後出 ps 例如 abc進棧 出棧共有幾種情況 上溢 超出規定的空間大小還進行插入操作 下溢 棧中元素已經用完了還進行刪除操作 include include include de...

資料結構 棧的順序儲存結構

什麼是棧?簡單的說是乙個後進先出的表,類似於彈夾,後入的子彈先打出來。下面是棧的一些具體操作步驟 首先是棧的結構定義 typedef int selemtype typedef struct sqstack,sq 棧的初始化 建立操作 sq initstack sq s s top 1 printf...

資料結構 棧的順序儲存

棧是一種後進先出的資料結構,也就是說他不像陣列那樣子,可以在中間插入,棧只能夠在上乙個存入資料的後面再存資料,而且只能取現進去的資料。棧簡稱lifo結構。棧是限定僅在表位進行插入和刪除操作的線性表。允許插入和刪除的一端叫棧頂,另一端叫棧底,不含任何元素的叫空棧。棧的插入操作,叫做進棧,也稱作壓棧,入...