Tree Quick Start — ucxdsa documentation

# Tree Quick Start

## Description

A binary search tree is a data structure that maintains sorted order, allowing efficient search, insertion, and deletion operations.

## Creation

Import class

    from dsa.tree import Tree, TreeNode  # or the appropriate Tree class

Creation

Create an empty binary search tree:

    t = Tree()

## TreeNodes Construction

Build a binary search tree using TreeNodes

    # Create TreeNode instances
    root = TreeNode(10)
    root.left = TreeNode(5)
    root.right = TreeNode(15)
    root.left.left = TreeNode(3)
    root.right.right = TreeNode(20)

    # Initialize the Tree with the root
    t = Tree(root=root)

This creates the following tree structure:

        10
       /  \
      5    15
     /      \
    3        20

## Common Operations

Insert

Insert a value in the binary search tree.

    t.insert(10)  # Insert 10 into the tree

Search

Search for a value in the binary search tree.

    node = t.search(10)  # Search for 10

Delete

Delete a value from the binary search tree.

    t.delete(10)  # Delete 10 from the tree

Printing Contents

Use print method to print the elements of the tree.

    t = Tree()
    t.insert(20)
    t.insert(10)
    t.insert(30)

    t.print()

Outputs the following (note that the output is rotated 90 degrees to the left):

       30
    20
       10

Alternative way to print the tree:

    from dsa.pretty_print import tree_print
    tree_print(t)

Outputs the following:

      20
    10 30

Use the TreeDraw class to draw a visual representation of a tree.

    from dsa.draw import TreeDraw
    t = Tree()
    t.insert(20)
    t.insert(10)
    t.insert(30)

    td = TreeDraw(t)
    td.draw()

Example of a Tree structure using TreeDraw.