#Build a queue class with the enqueue and dequeue methods. The queue can store an UNLIMITED number of elements. However, the language you are using has a bug which does not allow arrays to store more than 5 elements, how would you build that?
class queue:
def __init__(self, size):
self.size = size
self.queue = list()
self.buffer = []
def enqueue(self, element):
if len(self.buffer) == self.size:
self.queue.append(self.buffer)
self.buffer = []
self.buffer.append(element)
print(' buffer' + str(self.buffer))
print(' queue')
print(self.queue)
def dequeue(self):
element = None
if self.queue:
temp_buffer = self.queue[0] #pop head
if temp_buffer:
element = temp_buffer.pop(0)
if not temp_buffer:
self.queue.pop(0)
else:
self.queue[0] = temp_buffer
return element
temp = queue(5)
temp.enqueue(1)
temp.enqueue(2)
temp.enqueue(3)
temp.enqueue(4)
temp.enqueue(5)
temp.enqueue(6)
temp.enqueue(7)
temp.enqueue(8)
temp.enqueue(9)
temp.enqueue(10)
temp.enqueue(11)
for i in range(6):
print('dequeue ' + str(temp.dequeue()))