堆栈
"""
deque,又叫双端队列,因为既可以先进先出也可以后进先出
以下使用列表模拟
Python内置了真正的双端队列,请参考
https://docs.python.org/zh-cn/3/library/collections.html#collections.deque
"""
class Deque(object):
"""双端队列"""
def __init__(self):
"""创建一个空的双端队列"""
self.data = []
def add_front(self, item):
"""从队头加入一个item元素"""
self.data.insert(0,item)
def add_rear(self, item):
"""从队尾加入一个item元素"""
self.data.append(item)
def remove_front(self):
"""从队头删除一个item元素"""
return self.data.pop(0)
def remove_rear(self):
"""从队尾删除一个item元素"""
return self.data.pop()
if __name__ == '__main__':
deque = Deque()
# 当成栈使用
deque.add_rear(1)
deque.add_rear(2)
deque.add_rear(3)
print(deque.remove_rear())
print(deque.remove_rear())
print(deque.remove_rear())
# 当成队列使用
deque.add_front(1)
deque.add_front(2)
deque.add_front(3)
print(deque.remove_rear())
print(deque.remove_rear())
print(deque.remove_rear())