Пример #1
0
 def test_add_at_tail(self):
     dll = Dll()
     dll.add_at_head("apple")
     dll.add_at_head("orange")
     dll.add_at_tail("mango")
     assert str(dll.head) == "orange"
     assert dll.size_dll() == 3

def printReverse(current):
    """Print all the elements of the list in reverse."""
    temp = current
    if current is None:
        return

    # Traverse to the end
    while current.next:
        current = current.next

    # Traverse backward
    while current:
        print(current.data)
        current = current.prev


if __name__ == "__main__":
    dll = Dll()
    dll.add_at_head(1)
    dll.add_at_head(3)
    dll.add_at_tail(5)
    dll.add_at_tail(7)
    print("Head of linked list:")
    print(dll.head)
    print("Forward:")
    printForward(dll.head)
    print("Reverse:")
    printReverse(dll.head)
Пример #3
0
                current.prev = None
                current = None
                return

            # case 4:
            else:
                prev_node = current.prev
                prev_node.next = None
                current.prev = None
                current = None
                return
        current = current.next


if __name__ == "__main__":
    dll = Dll()
    dll.add_at_tail(1)
    dll.add_at_tail(2)
    dll.add_at_tail(3)
    dll.add_at_tail(2)
    dll.add_at_tail(1)
    dll.add_at_tail(4)
    dll.add_at_tail(2)
    dll.add_at_tail(1)
    print("List: ")
    dll.print_dll()
    print("\n")
    print("List after removing duplicates: ")
    remove_duplicates(dll.head)
    dll.print_dll()