棧
棧的特點是只允許在一端進行操作,按照後進先出(lifo, last in first out)的原理。它可以用順序表實現,也可以用鍊錶的方式實現。
棧頂:可以進行資料操作的一端叫做棧頂。
棧底:不能進行資料操作的一段叫做棧底。
入棧:向棧裡進行新增資料
出棧:將資料從棧裡取出來
棧的主要操作
stack() 建立乙個新的空棧
push(item) 新增乙個新的元素item到棧頂
pop() 彈出棧頂元素
peek() 返回棧頂元素
is_empty() 判斷棧是否為空
size() 返回棧的元素個數
python實現
#_*_coding:utf-8_*_
#棧類class
stack
(object):
def__init__
(self)
: self.__list =
defpush
(self,item)
:'''新增乙個新的元素item到棧頂
注意這裡對python list進行新增元素操作時也可以用insert,
'''defpop
(self)
:'''彈出棧頂元素'''
return self.__list.pop(
)def
peek
(self)
:'''返回棧頂元素'''
if self.__list:
return self.__list[-1
]else
:return
none
defis_empty
(self)
:'''判斷棧是否為空'''
return self.__list ==
defsize
(self)
:'''棧的長度'''
return
len(self.__list)
if __name__ ==
'__main__'
: s = stack(
) s.push(1)
s.push(2)
s.push(3)
s.push(4)
print
(s.pop())
print
(s.pop())
print
(s.pop())
print
(s.pop(
))
output:
432
1
python演算法 實現棧的基本操作
實現乙個棧的資料結構,使其具有 入棧 出棧 取棧頂元素 判斷棧是否為空 獲取棧中元素個數 coding utf 8 陣列實現棧的資料結構 入棧 出棧 取棧頂元素 判斷棧是否為空 獲取棧中元素個數 class mystack 模擬棧 def init self self.items 判斷是否為空 de...
用python實現棧 Python實現棧的方法
usr bin env python 定義乙個列表來模擬棧 stack def pu 出棧,用到了pop 函式 def popit if len stack 0 print cannot pop from an empty stack else print removed stack.pop 編歷棧...
Python 單鏈表實現棧操作
單鏈表實現棧操作,規定棧頂在鍊錶的頭部 如下 coding utf 8 class linkedstack class node def init self,element,next self.element element self.next next 棧方法 def init self self...