data_structures.linked_list =========================== .. py:module:: data_structures.linked_list .. autoapi-nested-parse:: Linked Lists consists of Nodes. Nodes contain data and also may link to other nodes: - Head Node: First node, the address of the head node gives us access of the complete list - Last node: points to null Submodules ---------- .. toctree:: :maxdepth: 1 /autoapi/data_structures/linked_list/circular_linked_list/index /autoapi/data_structures/linked_list/deque_doubly/index /autoapi/data_structures/linked_list/doubly_linked_list/index /autoapi/data_structures/linked_list/doubly_linked_list_two/index /autoapi/data_structures/linked_list/floyds_cycle_detection/index /autoapi/data_structures/linked_list/from_sequence/index /autoapi/data_structures/linked_list/has_loop/index /autoapi/data_structures/linked_list/is_palindrome/index /autoapi/data_structures/linked_list/merge_two_lists/index /autoapi/data_structures/linked_list/middle_element_of_linked_list/index /autoapi/data_structures/linked_list/print_reverse/index /autoapi/data_structures/linked_list/reverse_k_group/index /autoapi/data_structures/linked_list/rotate_to_the_right/index /autoapi/data_structures/linked_list/singly_linked_list/index /autoapi/data_structures/linked_list/skip_list/index /autoapi/data_structures/linked_list/swap_nodes/index Classes ------- .. autoapisummary:: data_structures.linked_list.LinkedList data_structures.linked_list.Node Package Contents ---------------- .. py:class:: LinkedList .. py:method:: __len__() -> int >>> linked_list = LinkedList() >>> len(linked_list) 0 >>> linked_list.add("a") >>> len(linked_list) 1 >>> linked_list.add("b") >>> len(linked_list) 2 >>> _ = linked_list.remove() >>> len(linked_list) 1 >>> _ = linked_list.remove() >>> len(linked_list) 0 .. py:method:: __str__() -> str >>> linked_list = LinkedList() >>> linked_list.add(23) >>> linked_list.add(14) >>> linked_list.add(9) >>> print(linked_list) 9 --> 14 --> 23 .. py:method:: add(item: Any, position: int = 0) -> None Add an item to the LinkedList at the specified position. Default position is 0 (the head). Args: item (Any): The item to add to the LinkedList. position (int, optional): The position at which to add the item. Defaults to 0. Raises: ValueError: If the position is negative or out of bounds. >>> linked_list = LinkedList() >>> linked_list.add(1) >>> linked_list.add(2) >>> linked_list.add(3) >>> linked_list.add(4, 2) >>> print(linked_list) 3 --> 2 --> 4 --> 1 # Test adding to a negative position >>> linked_list.add(5, -3) Traceback (most recent call last): ... ValueError: Position must be non-negative # Test adding to an out-of-bounds position >>> linked_list.add(5,7) Traceback (most recent call last): ... ValueError: Out of bounds >>> linked_list.add(5, 4) >>> print(linked_list) 3 --> 2 --> 4 --> 1 --> 5 .. py:method:: is_empty() -> bool .. py:method:: remove() -> Any .. py:attribute:: head :type: Node | None :value: None .. py:attribute:: size :value: 0 .. py:class:: Node(item: Any, next: Any) .. py:attribute:: item .. py:attribute:: next