資料結構之棧

2021-09-27 13:34:46 字數 1467 閱讀 4532

棧是一種線性的資料結構,儲存以及查詢資料時只能訪問棧的一端。做個比喻的話,棧就像是一疊盤子,新盤子放到一疊盤子的最上面,去的時候也是從最上面取。最後放上去的盤子最先被取走。棧也因此被稱為是後進先出的結構。

如下圖所示

棧的python實現

class

node

:"""

建立鍊錶的節點

包含data儲存的資料和next指向下乙個節點

"""def__init__

(self, data)

: self.data = data

self.

next

=none

class

stack

:def

__init__

(self)

:"""

刪除了初始化的操作

大家可以自己寫一下,列表初始化或元素初始化

"""self.head =

none

self.num =

0def

clear

(self)

:#清空棧

self.head =

none

self.num =

0def

isempty

(self)

:#判斷是否為空

return self.num ==

0def

push

(self, data)

:#新增元素到棧

if self.head ==

none

: self.head = node(data)

else

: p = self.head

self.head = node(data)

self.head.

next

= p

self.num +=

1def

pop(self)

:#彈出元素

p = self.head

data = p.data

if p.

next

==none

: self.head =

none

else

: self.head = p.

next

self.num -=

1return data

defgetdata

(self)

:#獲取棧頂元素

#不彈出

p = self.head

data = p.data

return data

資料結構之棧結構

棧結構是一種filo first in last out 的批量資料儲存結構。其特點是先進後出,後來者居上 棧的基本屬性 棧記憶體 棧頂標記 棧的當前元素個數 萬金油屬性 size 棧的基本操作 萬金油的的操作 根據實現的不同將棧結構分為兩種 1.鏈式棧 2.陣列 利用有表頭鍊錶的頭插法來完成棧的功...

資料結構之棧

4.8.2 四則運算表示式求值 程式如下所示 include include include 定義結點型別 typedef struct node node,pnode 定義棧的抽象資料型別 typedef struct stack stack,pstack 函式宣告 對棧進行初始化的函式 void...

資料結構之棧

資料結構之棧 本文討論棧的陣列實現。棧需要有如下幾個屬性 棧的容量 capacity 棧頂指標 儲存棧元素的陣列 根據這幾個屬性可以定義乙個棧結構體 struct stackrecord 然後定義棧的操作,一般可以包含如下幾個 棧的建立 stack createstack int size 棧的銷毀...