栈和队列都是动态集合,栈实现的策略是:后进先出(LIFO),队列实现的策略是:先进先出。下面介绍如何使用python实现栈和列表这两种基础数据结构。
栈的实现(python)
class Stack(object):
def __init__(self):
self.items = []
#判断是否是空栈
def isEmpty(self):
return len(self.items)==0
#入栈
def push(self, item):
self.items.append(item)
#弹出栈顶元素
def pop(self):
return self.items.pop()
#查看栈顶元素
def peek(self):
if not self.isEmpty():
return self.items[len(self.items)-1]
#查看栈内元素的个数
def size(self):
return len(self.items)
if __name__=='__main__':
s=Stack()
print s.isEmpty()
队列的实现
class Queue(object):
def __init__(self):
self.items=[]
#判断队列是否存在元素
def isEmpty(self):
return len(self.items)==0
#入队列
def push(self, item):
self.items.append(item)
#出队列:注意与栈的区别
def pop(self):
if not self.isEmpty():
return self.items[0]
if __name__=='__main__':
queue=Queue()
print queue.isEmpty()