直接上代碼:
1.棧:
class Stack(object):
def __init__(self):
self.l = []
def empty(self):
# 判斷棧是否為空
return len(self.l) == 0
def peek(self):
# 查看棧頂的對象,但不移除
if not self.empty():
return self.l[-1]
return None
def pop(self):
# 移除棧頂對象,並返回該對象的值
if not self.empty():
return self.l.pop()
return None
def push(self, obj):
# 把對象壓入棧頂
self.l.append(obj)
def search(self, obj):
# 返回對象在棧中的位置,以1為基數
if not self.empty():
return self.l.index(obj) + 1
return -1
2.隊列:
class Queue(object):
def __init__(self):
self.l = []
def empty(self):
# 判斷隊列是否為空
return len(self.l) == 0
def add(self, obj):
# 將指定元素加入隊列的尾部
self.l.append(obj)
def peek(self):
# 查看隊首的對象,但不移除
if not self.empty():
return self.l[0]
return None
def poll(self):
# 移除隊首對象,並返回該對象的值
if not self.empty():
return self.l.pop(0)
return None
還有一種deque的方法,有興趣的可以看看。
這就是list列表實現棧和隊列的全部,希望可以幫助到大家!