棧:後進先出(lifo)表。
特點:只允許在頂部進行訪問操作的順序表。
基本操作:
應用場景:
棧的鍊錶實現:
1class
node(object):
2def
__init__(self, value=none, next=none):
3 self.value =value
4 self.next =next56
7class
stack(object):
8def
__init__(self, maxsize=8):
9 self._head = node() #
表頭,無實際意義
10 self._top =none
11 self.maxsize =maxsize
12 self.length =0
1314
defpop(self):
15if self.length >0:
16 node =self._head.next
17 self._head.next =node.next
18 self.length -= 1
19 self._top =self._head.next
20else:21
raise exception('
empty stack')
2223
defpush(self, value):
24if self.length >=self.maxsize:
25raise exception('
stack is full')
26 node =node(value)
27 node.next =self._head.next
28 self._head.next =node
29 self.length += 1
30 self._top =self._head.next
3132
deftop(self):
33if self.length >0:
34return
self._top.value
35else:36
raise exception('
stack is empty')
3738
def__len__
(self):
39return self.length
棧的陣列實現:
1from array import
array23
class
stack(object):
4def
__init__(self, maxsize=8):
5 self._array = array('i'
, range(maxsize))
6 self.maxsize =maxsize
7 self.length =0
8 self.index = -1
9 self._top =none
1011
defpush(self, value):
12if self.length >=self.maxsize:
13raise exception('
stack is full')
14 self.index += 1
15 self._array[self.index] =value
16 self.length += 1
17 self._top =value
1819
defpop(self):
20if self.length <=0:
21raise exception('
stack is empty')
22 self.index -= 1
23 self.length -= 1
24if self.index >=0:
25 self._top =self._array[self.index]
26else
:27 self._top =none
2829
deftop(self):
30return
self._top
3132
def__len__
(self):
33return self.length
資料結構(二)棧結構
template t stack pop void temp stacklist top top return temp 從棧頂壓入出乙個元素 templatet t stack push const t item top stacklist top item 讀棧頂元素 template t st...
資料結構(二) 棧
棧也是一種線性儲存結構,具有先進後出的特點 word中的撤銷操作,作業系統的方法呼叫都利用了棧 棧還可以用來做匹配,比如括號匹配等 基於陣列的棧入棧push使用陣列的addlast 追加 取資料時使用陣列的getlast 做出棧pop 操作 這次模擬實現的棧是基於上篇部落格實現的動態陣列實現的 pu...
資料結構 二 棧
1.簡介 1.1 棧stack 1 棧是一種線性結構 2 相比陣列,棧對應的操作是陣列操作的子集。3 棧的本質就是乙個陣列,我們把資料排開來放,但是規定 新增元素的時候只能從一端新增元素,也只能從一端取出元素。這一段通常稱為 棧頂 1.2 新增資料的規則 1 相當於在在乙個桶中新增資料。這個操作叫入...