Data Structure and Algorithms - Trees
Data Structure and Algorithms - Trees
Data Structure and Algorithms - Trees
Tree
A tree is a non-linear abstract data type with a hierarchy-based
structure. It consists of nodes (where the data is stored) that are
connected via links. The tree data structure stems from a single
node called a root node and has subtrees connected to the root.
Important Terms
Following are the important terms with respect to tree.
Types of Trees
There are three types of trees −
General Trees
Binary Trees
Binary Search Trees
General Trees
General trees are unordered tree data structures where the root
node has minimum 0 or maximum ‘n’ subtrees.
Binary Trees
Binary Trees are general trees in which the root node can only
hold up to maximum 2 subtrees: left subtree and right subtree.
Based on the number of children, binary trees are divided into
three types.
A full binary tree is a binary tree type where every node has
either 0 or 2 child nodes.
A perfect binary tree is a binary tree type where all the leaf
nodes are on the same level and every node except leaf
nodes have 2 children.
The data in the Binary Search Trees (BST) is always stored in such
a way that the values in the left subtree are always less than the
values in the root node and the values in the right subtree are
always greater than the values in the root node, i.e. left subtree <
root node ≤ right subtree.
Advantages of BST
Disadvantages of BST
This skewness will make the tree a linked list rather than a BST,
since the worst case time complexity for searching operation
becomes O(n).
Consider a Binary Search Tree with ‘m’ as the height of the left
subtree and ‘n’ as the height of the right subtree. If the value of
(m-n) is equal to 0,1 or -1, the tree is said to be a Balanced
Binary Search Tree.
The trees are designed in a way that they self-balance once the
height difference exceeds 1. Binary Search Trees use rotations as
self-balancing algorithms. There are four different types of
rotations: Left Left, Right Right, Left Right, Right Left.
AVL Trees
Red Black Trees
B Trees
B+ Trees
Splay Trees
Priority Search Trees