Esempio n. 1
0
class LinkedQueue:
    def __init__(self):
        self.data = Doubly_Linked_List()

    def __len__(self):
        return len(self.data)

    def is_empty(self):
        return self.data.is_empty()

    def first(self):
        if self.is_empty():
            raise Empty("Queue is Empty")
        return self.data.first()

    def dequeue(self):  # O(1)
        if self.is_empty():
            raise Empty("Queue is Empty")
        return self.data.delete_first()

    def enqueue(self, e):  # O(1)
        self.data.insert_last(e)

    def __str__(self):
        return str(self.data)
Esempio n. 2
0
class LinkedQueue():
    def __init__(self, N=10):
        self._data = Doubly_Linked_List()
        self._size = 0

    def __len__(self):
        return self._size

    def is_empty(self):
        return self._size == 0

    def first(self):  #O(1)
        if self.is_empty():
            raise Empty("Queue is Empty")
        return self._header._next._element

    def dequeue(self):  #O(1)
        if self.is_empty():
            raise Empty("Queue is Empty")
        self._size -= 1
        return self._data.delete_first()  ##???

    def enqueue(self, e):  #O(1)
        self._size += 1
        self._data.insert_last(e)  ##???

    def __str__(self):
        ''' You can simply print self._data '''
        return str(self._data)  #print directly or as string