Esempio n. 1
0
class ListQueue:
    # TODO limit size
    def __init__(self, size=0):
        self.list_obj = EndedLinkedList()

# top of the stack is

    def list(self):
        return [link.key for link in self.list_obj.array()]

    def isEmpty(self):
        return self.list_obj.isEmpty()

    def insert(self, key):
        self.list_obj.insertLast(key, None)

    def remove(self):
        if self.isEmpty():
            raise ValueError("Removing from empty queue")
        return self.list_obj.deleteFirst().key

    def head(self):
        if self.isEmpty():
            raise ValueError("Reading head from empty queue")
        return self.list_obj.first.key
Esempio n. 2
0
 def test_delete_first_non_empty(self):
     list = EndedLinkedList()
     list.insertFirst(1, {"a": 1})
     list.insertFirst(2, {"b": 2})
     self.assertEqual(list.deleteFirst().data["b"], 2)
     self.assertEqual(len(list.array()), 1)
Esempio n. 3
0
 def test_delete_first_empty(self):
     list = EndedLinkedList()
     self.assertEqual(list.deleteFirst(), None)