Tree Data Structure Last Updated : 15 Apr, 2024 Improve Improve Like Article Like Save Share Report Tree Data Structure is a hierarchical data structure in which a collection of elements known as nodes are connected to each other via edges such that there exists exactly one path between any two nodes. Table of Content What is Tree Data Structure? Terminologies In Tree Data Structure Types of Tree Data Structure Applications of Tree Data Structure Basics of Tree Data Structure Basic Operations on Tree Data Structure n-ary or Generic Tree Binary Tree Binary Search Tree Ternary Search Tree AVL Tree B+ Tree Red-Black Tree Other types of Trees Trees vs other Data Structures Comparison among different Tree Data Structures Problems based on Tree Data Structure What is Tree Data Structure? A tree data structure is a hierarchical structure that is used to represent and organize data in a way that is easy to navigate and search. It is a collection of nodes that are connected by edges and has a hierarchical relationship between the nodes. The topmost node of the tree is called the root, and the nodes below it are called the child nodes. Each node can have multiple child nodes, and these child nodes can also have their own child nodes, forming a recursive structure. Terminologies In Tree Data Structure: Parent Node: The node which is a predecessor of a node is called the parent node of that node. {B} is the parent node of {D, E}. Child Node: The node which is the immediate successor of a node is called the child node of that node. Examples: {D, E} are the child nodes of {B}. Root Node: The topmost node of a tree or the node which does not have any parent node is called the root node. {A} is the root node of the tree. A non-empty tree must contain exactly one root node and exactly one path from the root to all other nodes of the tree. Leaf Node or External Node: The nodes which do not have any child nodes are called leaf nodes. {K, L, M, N, O, P, G} are the leaf nodes of the tree. Ancestor of a Node: Any predecessor nodes on the path of the root to that node are called Ancestors of that node. {A,B} are the ancestor nodes of the node {E} Descendant: A node x is a descendant of another node y if and only if y is an ancestor of y. Sibling: Children of the same parent node are called siblings. {D,E} are called siblings. Level of a node: The count of edges on the path from the root node to that node. The root node has level 0. Internal node: A node with at least one child is called Internal Node. Neighbor of a Node: Parent or child nodes of that node are called neighbors of that node. Subtree: Any node of the tree along with its descendant. Types of Tree Data Structure: Binary tree: In a binary tree, each node can have a maximum of two children linked to it. Some common types of binary trees include full binary trees, complete binary trees, balanced binary trees, and degenerate or pathological binary trees. Ternary Tree: A Ternary Tree is a tree data structure in which each node has at most three child nodes, usually distinguished as “left”, “mid” and “right”. N-ary Tree or Generic Tree: Generic trees are a collection of nodes where each node is a data structure that consists of records and a list of references to its children(duplicate references are not allowed). Unlike the linked list, each node stores the address of multiple nodes. Applications of Tree Data Structure: File System: This allows for efficient navigation and organization of files. Data Compression: Huffman coding is a popular technique for data compression that involves constructing a binary tree where the leaves represent characters and their frequency of occurrence. The resulting tree is used to encode the data in a way that minimizes the amount of storage required. Compiler Design: In compiler design, a syntax tree is used to represent the structure of a program. Database Indexing: B-trees and other tree structures are used in database indexing to efficiently search for and retrieve data. Basics of Tree Data Structure: Introduction to Tree – Data Structure and Algorithm Tutorials What is Tree | Tree Definition & Meaning in DSA Types of Trees in Data Structures Applications of tree data structure Applications, Advantages, and Disadvantages of Tree Basic Operations on Tree Data Structure: Height of Tree Height and Depth of Node Level of a Given Node in Tree Search a Node in Tree Find the Parent of a Node Diameter of a Tree Find all Leaf nodes Find Siblings of a Node Find Children of a Node Tree Traversals (Inorder, Preorder and Postorder) n-ary or Generic Tree: Generic Trees(N-ary Trees) What is Generic Tree or N-ary Tree Depth of an N-ary Tree Mirror of n-ary Tree Diameter of an N-ary Tree Level Order Traversal of N-ary Tree Sum of all elements of N-ary Tree Serialize and Deserialize an N-ary Tree Binary Tree: Introduction to Binary Tree – Data Structure and Algorithm Tutorials Properties of Binary Tree Types of Binary Tree Applications, Advantages and Disadvantages of Binary Tree Binary Tree (Array implementation) Level Order Tree Traversal Inorder Traversal of Binary Tree Preorder Traversal of Binary Tree Postorder Traversal of Binary Tree Insertion in a Binary Tree Deletion in a Binary Tree Enumeration of Binary Trees Binary Search Tree: Introduction to Binary Search Tree – Data Structure and Algorithm Tutorials Applications of BST Application, Advantages and Disadvantages of Binary Search Tree Insertion in Binary Search Tree Searching in Binary Search Tree Binary Search Tree (BST) Traversals – Inorder, Preorder, Post Order Deletion in Binary Search Tree Ternary Search Tree: Ternary Search Tree Ternary Search Tree meaning & definition in DSA Ternary Search Tree (Deletion) How to implement text Auto-complete feature using Ternary Search Tree Longest word in ternary search tree AVL Tree: AVL Tree Data Structure What is AVL Tree | AVL Tree meaning Insertion in an AVL Tree Deletion in an AVL Tree Weak AVL or Rank Balanced Trees Insertion, Searching and Deletion in AVL trees containing a parent node pointer AVL with duplicate keys Count greater nodes in AVL tree How to insert Strings into an AVL Tree Minimum number of nodes in an AVL Tree with given height Optimal sequence for AVL tree insertion (without any rotations) Different shapes of AVL possible at height h B Tree: Introduction of B-Tree What is B-Tree? | B-Tree meaning Insert Operation in B-Tree Delete Operation in B-Tree B-Tree Insert without aggressive splitting B+ Tree: Introduction of B+ Tree What is B+ Tree | B+ Tree meaning Insertion in a B+ tree Deletion in B+ Tree Red-Black Tree: Introduction to Red-Black Tree Red-Black Tree Definition & Meaning in DSA Insertion in Red-Black Tree Red-Black Trees | Top-Down Insertion Deletion in Red-Black Tree Applications, Advantages, and Disadvantages of Red-Black Tree Other types of Trees: Ternary Tree: What is Ternary Tree Create a Doubly Linked List from a Ternary Tree Interval Tree: Interval Tree Interval Tree using GNU Tree-based container 2-3-4 Tree: 2-3-4 Tree 2-3 Trees | (Search, Insert, and Deletion) Trees vs other Data Structures: Difference between graph and tree Comparison between Heap and Tree What is the difference between Heap and Red-Black Tree? Difference between Binary Search Tree and Binary Heap Difference between Stack and Tree Difference between an array and a tree Comparison among different Tree Data Structures: Difference between General tree and Binary tree Difference between Binary Tree and Binary Search Tree Difference between Binary tree and B-tree Difference between B tree and B+ tree Difference between Full and Complete Binary Tree Difference between Binary Search Tree and AVL Tree Red Black Tree vs AVL Tree Problems based on Tree Data Structure: Problems Difficulty Level Solve Height of Binary Tree Easy Solve Determine if two trees are identical Easy Solve Mirror tree Easy Solve Symmetric Tree Easy Solve Diameter of tree Easy Solve Checked for Balanced tree Easy Solve Children Sum Parent Easy Solve Check for BST Easy Solve Array to BST Easy Solve Largest value in each level of binary tree Easy Solve Maximum GCD of siblings of a binary tree Easy Solve Zigzag Tree Traversal Easy Solve Inorder Successor in BST Easy Solve Kth Largest Element in a BST Easy Solve Check if subtree Medium Solve Single Valued Subtree Medium Solve Unique BSTs Medium Solve Inorder Traversal (iterative) Medium Solve Preorder Traversal (iterative) Medium Solve Postorder Traversal(iterative) Medium Solve Vertical Traversal of a Binary Tree Medium Solve Boundary Traversal Medium Solve Construct Binary Tree from Parent array Medium Solve Construct Binary Tree from Preorder and Inorder Traversal Medium Solve Preorder Traversal and BST Medium Solve Construct tree from preorder traversal Medium Solve Minimum distance between two given nodes Medium Solve Maximum sum leaf to root path Medium Solve Odd Even Level Difference Medium Solve Lowest Common Ancestor of a Binary Tree Medium Solve Ancestors in Binary Tree Medium Solve Remove BST keys outside the given range Medium Solve Pair with given target in BST Medium Solve Sum Tree Medium Solve BST to greater sum tree Medium Solve BST to max heap Medium Solve Clone binary tree with random pointer Medium Solve Maximum sum of non adjacent nodes Medium Solve Largest BST in a Binary Tree Medium Solve Extreme nodes in alternate order Medium Solve Connect nodes at same level Hard Solve Nodes at given distance in a Binary Tree Hard Solve Sorted Linked List to BST Hard Solve Binary Tree to Doubly Linked List Hard Solve Maximum sum path between two leaf nodes Hard Solve K-Sum Paths Hard Solve Number of turns in a binary tree Hard Solve Merge two BST’s Hard Solve Fixing two nodes of a BST Hard Solve Burn Binary Tree Hard Solve Quick Links: Practice problems on Trees Videos on Trees Quizzes on Tree Like Article Suggest improvement Previous Queue Data Structure Next Heap Data Structure Share your thoughts in the comments Add Your Comment Please Login to comment...