LinkedList

LinkedList#

class LinkedList(linked_list_type='singly')#

Bases: Container

__init__(linked_list_type='singly')#

Methods

__init__([linked_list_type])

append(data)

Insert node with value 'data' at index -1 assuming length is more than 0.

delete(data[, index, verbosity_level])

Delete node with value 'data'.

delete_head()

Delete the first node in the linked list (head).

delete_last(preceding)

Delete the last node in the linked list (tail) given its predecessor.

delete_middle(preceding)

Delete the node following input node assuming that such node is not the last in the linked list.

increment_n_ops([increment])

Convenience method to increment n_ops count of the given complexity object.

insert(data, index[, verbosity_level])

Insert node with value 'data' at given index.

insert_to_empty(data)

Setup first node with value 'data' as head and also as tail in case of doubly linked list

prepend(data)

Insert node with value 'data' at index 0 assuming length is more than 0.

reset_n_ops()

Convenience method to reset n_ops count of the given complexity object.

search(data)

Search for node with given value 'data'.

traverse(index[, reset_n_ops, verbosity_level])

Convenience method to traversing from head up to given index.

Attributes

append(data)#

Insert node with value ‘data’ at index -1 assuming length is more than 0.

Parameters:

data (Any) – Value for the node to hold.

Return type:

None

property average_case_delete_time_complexity: str#
Return type:

str

property average_case_insert_time_complexity: str#
Return type:

str

property average_case_search_time_complexity: str#
Return type:

str

property best_case_delete_description: str#
Return type:

str

property best_case_delete_time_complexity: str#
Return type:

str

property best_case_insert_description: str#
Return type:

str

property best_case_insert_time_complexity: str#
Return type:

str

property best_case_search_description: str#
Return type:

str

property best_case_search_time_complexity: str#
Return type:

str

delete(data, index=None, verbosity_level=0)#

Delete node with value ‘data’. If index is passed, the element at given index has to hold value equal to ‘data’. Otherwise, first entry with given value is deleted.

Parameters:
  • data (Any) – Value which the node to be deleted is holding.

  • index (Optional[int] (default None)) – Index of the node to be deleted. Has to be lower than or equal to self._length.

  • verbosity_level (int (default 0)) – Select the amount of information to print throughout the deletion. One of 0, 1, 2 with 0 referring to no printing, 1 leading to printing the linked list before and after deletion and 2 meaning additionally print every element of traversal.

Return type:

None

delete_head()#

Delete the first node in the linked list (head).

Return type:

None

delete_last(preceding)#

Delete the last node in the linked list (tail) given its predecessor.

Parameters:

preceding (LinkedListNode) – The node preceding to the node to be deleted (which is last in the linked list).

Return type:

None

delete_middle(preceding)#

Delete the node following input node assuming that such node is not the last in the linked list.

Parameters:

preceding (LinkedListNode) – The node preceding to the node to be deleted (which is not last in the linked list).

Return type:

None

property head: Optional[LinkedListNode]#
Return type:

Optional[LinkedListNode]

increment_n_ops(increment=1)#

Convenience method to increment n_ops count of the given complexity object.

Return type:

None

insert(data, index, verbosity_level=0)#

Insert node with value ‘data’ at given index.

Parameters:
  • data (Any) – Value for the node to hold.

  • index (int) – At what position to insert the node. Must be lower than or equal to self._length.

  • verbosity_level (int (default 0)) – Select the amount of information to print throughout the insertion. One of 0, 1, 2 with 0 referring to no printing, 1 leading to printing the linked list before and after insertion and 2 meaning additionally print every element of traversal.

Return type:

None

insert_to_empty(data)#

Setup first node with value ‘data’ as head and also as tail in case of doubly linked list

Parameters:

data (Any) – Value for the node to hold.

Return type:

None

property n_ops: int#
Return type:

int

property name: str#
Return type:

str

prepend(data)#

Insert node with value ‘data’ at index 0 assuming length is more than 0.

Parameters:

data (Any) – Value for the node to hold.

Return type:

None

reset_n_ops()#

Convenience method to reset n_ops count of the given complexity object.

Return type:

None

search(data)#

Search for node with given value ‘data’. Index of first occurrence (from the front) of such node is returned or None of it is not found.

Parameters:

data (Any) – Value to be held by the node.

Returns:

location – Index of first occurrence of such node or None if it is not found.

Return type:

Optional[int]

property space_complexity: str#
Return type:

str

property tail: Optional[LinkedListNode]#
Return type:

Optional[LinkedListNode]

traverse(index, reset_n_ops=False, verbosity_level=0)#

Convenience method to traversing from head up to given index. If linked list is of type double, traverse from tail for cases when index is higher than half of length.

Parameters:
  • index (int) – Index to end at with head having index 0.

  • reset_n_ops (bool (default False)) – Whether to reset self.n_ops to 0 at the beginning of the method run (False for convenience usage).

  • verbosity_level (int (default 0)) – Select the amount of information to print throughout the traversal. One of 0, 1, 2 with 0 referring to no printing, 1 leading to printing the linked list and 2 meaning additionally print every element of traversal.

Returns:

current – None if linked list is empty or index is out of range, node at index otherwise.

Return type:

LinkedListNode | None

property worst_case_delete_description: str#
Return type:

str

property worst_case_delete_time_complexity: str#
Return type:

str

property worst_case_insert_description: str#
Return type:

str

property worst_case_insert_time_complexity: str#
Return type:

str

property worst_case_search_description: str#
Return type:

str

property worst_case_search_time_complexity: str#
Return type:

str