def test_delete(self):
        dll = DoubleLinkedList(array)
        item1 = 1
        item2 = 4
        item3 = 6

        current = dll.head

        #delete first item
        if dll.head.data == item1:
            dll.head = dll.head.next
            dll.head.prev = None

        #delete last item
        if dll.tail.data == item3:
            dll.tail = dll.tail.prev
            dll.tail.next = None

        #delete item in the middle of dll
        while current is not None:

            if current.data == item2:
                current.prev.next = current.next
                current.next.prev = current.prev
            current = current.next

        assert dll.head.data == 2
        assert dll.tail.data == 5
        assert dll.head.next.next.data == 5
        assert dll.tail.prev.data == 3
Exemplo n.º 2
0
 def chain(self, key, val, position):
     dl = DoubleLinkedList()
     dl.head = Node([self.key_store[position], self.hash_table[position]])
     dl.add([key, val], len(dl.linked_gen()) + 1)
     self.hash_table[position] = dl