双端队列的实现
队列只能在一头入,另一头出。双端队列可以在一头出,也可以入,在另一头也一样。
实现:
class Deque(object):
def __init__(self):
self.items = []
def isEmpty(self):
return len(self.items) == 0
def size(self):
return len(self.items)
def printer(self):
for i in self.items:
print(i)
def push_front(self, x):
self.items.insert(0, x)
def push_back(self, x):
self.items.append(x)
def pop_front(self):
try:
temp = self.items[0]
self.items.remove(self.items[0])
return temp
except Exception as e:
print('Error: ', e)
def pop_back(self):
try:
return self.items.pop()
except Exception as e:
print('Error: ', e)
测试:
# 测试
d = Deque()
print(d.isEmpty())
print(d.size())
d.pop_back()
d.push_back(1)
d.push_back(2)
d.push_back(3)
d.push_back(4)
d.push_front(5)
print(d.size())
print(d.isEmpty())
d.printer()
d.pop_back()
d.pop_front()
print(' ==================== ')
d.printer()
结果: