队列是先进先出的数据结构,区别就是双端队列两端既可以进也可以出!
# coding:utf-8
class Queue():
"""队列"""
def __init__(self):
self.__list = []
def enqueue(self, item):
"""往队列中添加一个item元素"""
self.__list.append(item)
def dequeeu(self):
"""从队列头部删除一个元素"""
return self.__list.pop(0)
def is_empty(self):
"""判断一个队列是否为空"""
return self.__list == []
def size(self):
"""返回队列的大小"""
return len(self.__list)
if __name__ == '__main__':
s = Queue()
s.enqueue(1)
s.enqueue(2)
s.enqueue(3)
s.enqueue(4)
print(s.dequeeu())
print(s.dequeeu())
print(s.dequeeu())
print(s.dequeeu())
class Deque():
"""双端队列"""
def __init__(self):
self.__list = []
def add_from(self, item):
"""往队列头部中添加一个item元素"""
self.__list.insert(0, item)
def add_rear(self, item):
"""往队列尾部中添加一个item元素"""
self.__list.append(item)
def pop_from(self):
"""从队列头部删除一个元素"""
return self.__list.pop(0)
def pop_rear(self):
"""从队列尾部删除一个元素"""
return self.__list.pop()
def is_empty(self):
"""判断一个队列是否为空"""
return self.__list == []
def size(self):
"""返回队列的大小"""
return len(self.__list)
if __name__ == '__main__':
s = Deque()
s.add_from(1)
s.add_from(2)
s.add_rear(3)
s.add_rear(4)
print(s.pop_from())
print(s.pop_from())
print(s.pop_rear())
print(s.pop_rear())