"""
Simple implementation of a Queue datastructure in Python.
"""
class Queue:
def __init__(self, items = None):
if items is None:
items = []
self.__queue = items
def __repr__(self):
return str(self.__queue)
def isempty(self):
return len(self.__queue) == 0
def enqueue(self, item):
self.__queue.append(item)
def dequeue(self):
return self.__queue.pop(0)
def peek(self):
return self.__queue[0]
if __name__ == '__main__':
q = Queue()
q.enqueue(10)
q.enqueue(20)
q.enqueue(30)
q.enqueue(40)
print (q)
print (q.peek())
q.dequeue()
print (q)
IiIiClNpbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiBhIFF1ZXVlIGRhdGFzdHJ1Y3R1cmUgaW4gUHl0aG9uLgoiIiIKY2xhc3MgUXVldWU6CiAgICBkZWYgX19pbml0X18oc2VsZiwgaXRlbXMgPSBOb25lKToKICAgICAgICBpZiBpdGVtcyBpcyBOb25lOgogICAgICAgICAgICBpdGVtcyA9IFtdCiAgICAgICAgc2VsZi5fX3F1ZXVlID0gaXRlbXMKCiAgICBkZWYgX19yZXByX18oc2VsZik6CiAgICAgICAgcmV0dXJuIHN0cihzZWxmLl9fcXVldWUpCgogICAgZGVmIGlzZW1wdHkoc2VsZik6CiAgICAgICAgcmV0dXJuIGxlbihzZWxmLl9fcXVldWUpID09IDAKCiAgICBkZWYgZW5xdWV1ZShzZWxmLCBpdGVtKToKICAgICAgICBzZWxmLl9fcXVldWUuYXBwZW5kKGl0ZW0pCgogICAgZGVmIGRlcXVldWUoc2VsZik6CiAgICAgICAgcmV0dXJuIHNlbGYuX19xdWV1ZS5wb3AoMCkKCiAgICBkZWYgcGVlayhzZWxmKToKICAgICAgICByZXR1cm4gc2VsZi5fX3F1ZXVlWzBdCgppZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgcSA9IFF1ZXVlKCkKICAgIHEuZW5xdWV1ZSgxMCkKICAgIHEuZW5xdWV1ZSgyMCkKICAgIHEuZW5xdWV1ZSgzMCkKICAgIHEuZW5xdWV1ZSg0MCkKICAgIHByaW50IChxKQogICAgcHJpbnQgKHEucGVlaygpKQogICAgcS5kZXF1ZXVlKCkKICAgIHByaW50IChxKQ==