0% found this document useful (0 votes)
8 views

Binary Search Tree

Uploaded by

pd03487
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Binary Search Tree

Uploaded by

pd03487
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 2

Binary Search Tree (BST)

Introduction
A Binary Search Tree (BST) is a fundamental data structure in computer science that organizes
data in a hierarchical manner. It's a tree-based data structure where each node has at most two
children, referred to as the left child and the right child. The key property of a BST is that for any
node, all nodes in its left sub-tree have values less than the node's value, and all nodes in its right
sub-tree have values greater than the node's value.

Structure

A BST node typically consists of three parts:

1. Data: The actual data element stored in the node.


2. Left Child Pointer: Points to the left child node, which contains values less than the
current node.
3. Right Child Pointer: Points to the right child node, which contains values greater than
the current node.

Basic Operations

1. Search:
o Start from the root node.
o If the target value is equal to the current node's value, return the node.
o If the target value is less than the current node's value, move to the left child.
o If the target value is greater than the current node's value, move to the right child.
o Repeat the process until the target value is found or we reach a null node.
2. Insertion:
o Start from the root node.
o If the tree is empty, create a new node as the root.
o If the target value is less than the current node's value, move to the left child.
o If the target value is greater than the current node's value, move to the right child.
o Repeat the process until a null node is reached, and then create a new node at that
position.
3. Deletion:
o Case 1: Node with no children: Simply delete the node.
o Case 2: Node with one child: Replace the node with its child.
o Case 3: Node with two children:
 Find the in order successor (smallest value in the right sub-tree).
 Replace the node's value with the in order successor's value.
 Recursively delete the in order successor.
Time Complexity

In an ideal BST, the height of the tree is O(log n), where n is the number of nodes. This leads to
the following time complexities for the basic operations:

 Search: O(log n) average case, O(n) worst case (skewed tree)


 Insertion: O(log n) average case, O(n) worst case (skewed tree)
 Deletion: O(log n) average case, O(n) worst case (skewed tree)

Space Complexity

The space complexity of a BST is O(n), as each node requires constant space.

Applications

 Sorting and Searching: BSTs can be used for efficient sorting and searching
algorithms.
 Symbol Tables: They can be used to store key-value pairs, where the keys are unique.
 Priority Queues: BSTs can be modified to implement priority queues.
 Expression Trees: They can represent mathematical expressions.

Conclusion

Binary Search Trees are versatile data structures with numerous applications in computer
science. Their ability to efficiently search, insert, and delete elements makes them a valuable tool
for various algorithms and data structures. However, their performance can degrade in the worst
case scenario of a skewed tree, leading to linear time complexity. To mitigate this, balanced BST
variants like AVL trees and Red-Black trees are often used.

You might also like