Tree Data Structure.

Arpit SinghArpit Singh
3 min read

The What

A tree is a powerful, efficient, non-linear, hierarchical data structure that consists of nodes connected by edges. Each tree has a root node, and every node can have zero or more child nodes, creating a parent-child relationship. There is a parent node and then the node connected to it are called as children node. Trees are widely used in computer science for various applications due to their efficient data organization and retrieval capabilities.

Types of Trees

Binary Tree

A tree where each node has at most two children, referred to as the left and right child is called as Binary tree, as the word suggest Binary means two. Parent node can have 0, 1 or 2 children only. In worst case it takes O(n) time for insertion, search and delete from Binary tree.

Binary Search Tree (BST)

A binary tree having at most two children, arranged in such a way that value of left child is smaller than its parent, values of right child is greater than its parent and hence the complete structure represents a sorted array. O(n) is the order of time taken in worst case for insert, delete and search operation in BST, but the time complexity changes to log(n) in average case and O(1) for vest case. Used for lookups because of average log(n) time complexity.

AVL Tree

A self-balancing binary search tree where the heights of two child subtrees of any node differ by at most one. AVL trees maintains the height difference after each operation if needed. Log(n) is the worst-case and average case time complexity for insertion, search and deletion.

N-ary Tree

Instead of having 0, 1 or 2 nodes as children, this tree can have children up to N, where N is a real integer. Useful in representing hierarchical data such as organizational structures or file systems. O(n) will be the order of time required in worst cage for insertion, deletion and search.

We also have Complete Binary Tree, Heaps, Perfect Binary Trees, Tries, Segment Tree, Red Black Tree etc. I’ll cover them in upcoming blogs.

Quick Recap

TypeAdvantagesDisadvantages
Binary TreeSimple structure; efficient searchingCan become unbalanced
Binary Search TreeFast lookups; simple implementationDegrades to O(n) if unbalanced
AVL TreeBalanced; guarantees O(log n) operationsComplex rotations required
N-ary TreeFlexible; represents complex relationshipsMore complex traversal

Conclusion

Tree data structures are essential in computer science due to their ability to represent hierarchical relationships efficiently. Understanding the different types of trees, their advantages, and disadvantages helps developers choose the right structure for their specific needs. Whether it's a simple binary tree or a more complex B-tree, each type serves unique purposes that enhance data management and retrieval processes.

0
Subscribe to my newsletter

Read articles from Arpit Singh directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Arpit Singh
Arpit Singh

AI engineer at Proplens AI, a final year student pursuing bachelor's in computer science and engineering.