class
stack
():def
__init__
(self):
self.items = # 初始化乙個列表
defis_empty
(self):
# 如果為空則返回true 否則返回false
return self.items ==
defpop(self):
try:
return self.items.pop()
except:
raise
defpush
(self, item):
defpeek
(self):
# 返回棧頂的元素
return self.items[len(self.items)-1]
defsize
(self):
return len(self.items)
class
queue
():def
__init__
(self):
self.items =
defis_empty
(self):
return self.items ==
defenqueue
(self, item):
# 從隊尾插入
self.items.insert(0, item)
defdequeue
(self):
try:
# 從隊首彈出
return self.items.pop()
except:
raise
defpeek
(self):
return self.items[0]
defsize
(self):
return len(self.items)
思路:
因為棧是先進後出的,佇列是先進先出的。那麼,設兩個棧分別為s1和s2。
# -*- coding:utf-8 -*-
class
solution:
def__init__
(self):
# 初始化兩個棧
self.stack1 =
self.stack2 =
defpush
(self, node):
# 直接在s1進行彈棧
defpop(self):
# 如果s2不為空,則直接進行彈棧
if self.stack2:
return self.stack2.pop()
# 如果s2為空,則返回尋找s1中的元素
elif
not self.stack1:
# 如果s1為空,則返回空置,沒有元素可以彈出
return
none
else:
# 否則將s1的元素倒入到s2中,再彈棧
while self.stack1:
return self.stack2.pop()
用 python 的 list 實現棧
介紹一下 棧作為一種資料結構,是一種只能在一端進行插入和刪除操作的特殊線性表。用 python 的順序表 list 實現 coding utf 8 date 21 50 author sixkery class stact object 棧 構造乙個棧的容器 def init self self.l...
棧 用python實現棧
分別採用有序列表 單向鏈和雙向鏈實現棧的推入 彈出等功能。方法一 有序列表的實現 直接利用python內建的list實現 class stack object def init self self.stack defpush self,item def peek self if self.isemp...
用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 編歷棧...