data_structures.binary_tree.serialize_deserialize_binary_tree

Classes

TreeNode

A binary tree node has a value, left child, and right child.

Functions

deserialize(→ TreeNode | None)

Deserialize a string to a binary tree.

Module Contents

class data_structures.binary_tree.serialize_deserialize_binary_tree.TreeNode

A binary tree node has a value, left child, and right child.

Props:

value: The value of the node. left: The left child of the node. right: The right child of the node.

__iter__() collections.abc.Iterator[TreeNode]

Iterate through the tree in preorder.

Returns:

An iterator of the tree nodes.

>>> list(TreeNode(1))
[1,null,null]
>>> tuple(TreeNode(1, TreeNode(2), TreeNode(3)))
(1,2,null,null,3,null,null, 2,null,null, 3,null,null)
__len__() int

Count the number of nodes in the tree.

Returns:

The number of nodes in the tree.

>>> len(TreeNode(1))
1
>>> len(TreeNode(1, TreeNode(2), TreeNode(3)))
3
__post_init__()
__repr__() str

Represent the tree as a string.

Returns:

A string representation of the tree.

>>> repr(TreeNode(1))
'1,null,null'
>>> repr(TreeNode(1, TreeNode(2), TreeNode(3)))
'1,2,null,null,3,null,null'
>>> repr(TreeNode(1, TreeNode(2), TreeNode(3, TreeNode(4), TreeNode(5))))
'1,2,null,null,3,4,null,null,5,null,null'
classmethod five_tree() TreeNode
>>> repr(TreeNode.five_tree())
'1,2,null,null,3,4,null,null,5,null,null'
left: TreeNode | None = None
right: TreeNode | None = None
value: int = 0
data_structures.binary_tree.serialize_deserialize_binary_tree.deserialize(data: str) TreeNode | None

Deserialize a string to a binary tree.

Args:

data(str): The serialized string.

Returns:

The root of the binary tree.

>>> root = TreeNode.five_tree()
>>> serialzed_data = repr(root)
>>> deserialized = deserialize(serialzed_data)
>>> root == deserialized
True
>>> root is deserialized  # two separate trees
False
>>> root.right.right.value = 6
>>> root == deserialized
False
>>> serialzed_data = repr(root)
>>> deserialized = deserialize(serialzed_data)
>>> root == deserialized
True
>>> deserialize("")
Traceback (most recent call last):
    ...
ValueError: Data cannot be empty.