×

Tree in Data Structure

Tree

A tree is a non-linear data structure by which hierarchical data is displayed. As we know that there are many trees in the forest, similarly the data structure also contains many types of trees, such as - binary tree, expression tree, tournament tree, binary search tree, threaded tree, AVL tree, and B-tree.

Tree in Data Structure

Basic terminology of the tree

  1. Root node: The topmost node in the tree is known as the root node. The whole tree is referenced through the root node.
  2. Edge: Edge is linked between the two nodes.
  3. Leaf node: A leaf node is a node that has no child node.
  4. Parent node: A parent-node can have multiple child nodes.
  5. Child node: A child has only one parent node.
  6. Path: The path is a set of successive edges from the initial node to the terminal node.

Uses of Tree

  1. The tree is a non-linear data structure, so it is used to store the information in a non-linear form.
  2. If we arrange the data in the form of a tree, we can search the data quickly.

Types of Tree

1.     Binary Tree

In the data structure, a binary tree is such type of tree in which each node has only a maximum of two children. Those are called the left child and right child.

Tree in DS

2.     Binary Search Tree

A binary search tree is a type of tree in which every node is organized in the sorted order. It is also called an ordered binary tree.

Properties of BST

  1. The left sub-tree value is less than the root node.
  2. Similarly, the right sub-tree value is higher than the root node.
  3. This rule is reapplied to all left and right sub-trees of the root.
Tree in DS

3.     Empty Tree

When there is no any single node in the tree is called an empty tree.

4.     B-Tree

B-tree stands for the balanced tree. A B-tree is an M-Way (multi-way) tree that is specially designed for use in the disk. An M-way tree can have many children. A node in an M-way tree can have many keys.

If the number of keys in a node of the M-way tree is N,  the number of children in that node will be k + 1.

Tree in DS

The B-tree is always perfectly balanced. That is, every leaf node of the B-tree has the same depth. The height-balanced and weight-balanced tree is not sufficient to store very large data, so the B-tree is used to eliminate this drawback. B-tree is mostly used in file systems and DBMS. B-tree is a method to locate and place files in a database.

Searching algorithm of B-tree

BtreeSearch(x, k)
i = 1  
while i ? n[x] and k ? keyi[x]        // n[x] means number of keys in x node     
do i = i + 1 
if i  n[x] and k = keyi[x]    
 then return (x, i) 
if leaf [x]    
 then return NIL
 else    
 return BtreeSearch(ci[x], k)  

5.     AVL Tree

AVL tree is a self-balancing binary search tree. It is also called a height-balanced tree. It was invented by GM Adelson - Velsky, and EM Landis in 1962. This tree is named AVL in honor of its inventors.

It can be defined as a height-balanced binary search tree. In this tree, every node or vertex is connected with a balance factor. This balancing factor is calculated by this formula.

Balance factor (BF) = height of left (sub-tree) - height of right (sub-tree)

If the tree is balanced, its balance factor of every node will be in between in -1 to 1. If the tree is unbalanced, that tree can be balanced with the help of rotation.

If it has N nodes, its height will be log2(N + 1).

Tree in DS

Related Topics

Length of longest palindrome in a linked list using O(1) extra space

Length of longest palindrome in a linked list using O(1) extra space In this problem, we need to find the length of the longest palindrome list that is present in given...

2 minutes read.

B Tree vs B + Tree: Data Structure

Difference Between B Tree and B+ Tree What is B Tree? B-Tree is a self-balancing or special type of m-way tree. B-Trees are used mainly in disc access. If we want...

3 minutes read.

Sum of Nodes in a Binary Tree

In this article, we will see the sample problems that will help us understand the concept and summation of all the nodes in the binary tree. Implementation /* creating a program that...

4 minutes read.

Linked List Representation of Binary Tree

As we all know, a binary tree has a maximum of two children and helps us manage the info correctly. The word binary itself represents its meaning; we know that...

4 minutes read.

Operations on 2D-Arrays

Two Dimensional Array Operations Adding Elements to Two-D Arrays We must put data in both rows and columns when inserting items in 2-D Arrays. As a result, we employ the idea of...

10 minutes read.

Stack vs Array

Difference between Array and Stack In this article, we are going to discuss the major differences between the stack and array data structures: Array – In the data structure, the array is...

3 minutes read.

DFS (Depth-first search) Algorithm: Data Structure

What is DFS (Depth-first search)? The depth first search is a graph traversal algorithm. The idea behind this algorithm is backtracking and it is a kind of recursive algorithm. In the...

3 minutes read.

Introduction to 1D-Arrays

One Dimensional Array Technical Definitions The simplest version of an Array is a One-Dimensional Array, in which the items are stored linearly and may be accessed individually by supplying the index value...

6 minutes read.

FIFO approach

FIFO is first in first out approach. It is done for the list of elements in data structures where first element will be deleted after another element ia added to it Here,...

6 minutes read.

Binary Search Tree vs AVL Tree: Data Structure

Difference Between Binary Search Tree and AVL Tree Binary Search Tree: The binary search tree is a kind of binary tree data structure and it follows the conditions of binary...

3 minutes read.

Given a Binary Tree, Print the Pre-order Traversal in Recursive

Implementation #include <stdio.h> #include <stdlib.h>   /* Creating a binary tree node that consists of some data along with the pointer to the left and right child.  */ struct __nod {     int record;     struct...

4 minutes read.

Splay Tree

Splay Tree A splay tree is a self-balanced or self-adjusted binary search tree. We can say, Splay Tree is used in some cases where some elements or data are accessed more...

8 minutes read.

Reverse a Linked List in groups of given size

Reverse a Linked List in groups of given size This article will explain how to reverse a linked list in groups of given size. Here we have given a linked list...

2 minutes read.

Recursion - Factorial and Fibonacci

In this article, we will learn how to find the factorial of a number and the Fibonacci series up to n using the recursion method. What is recursion? Defining anything in terms...

7 minutes read.

Types of Linked list

Single linked list  A single linked list is a linked list in which all nodes are connected with each other in sequence. Each node of a singly linked list has two...

7 minutes read.

Data Structures Algorithms

What is an Algorithm? An algorithm is a sequence of steps used to complete a job or get a desired result. It is similar to programming building elements that let cell...

4 minutes read.

Trie data structure

Trie data structure The term “trie” comes from the word “retrieval” which means getting information. The trie data structure is a sorted extension of tree-based data structure. The trie data structure...

5 minutes read.

Binary Search Tree

Binary Search Tree: A binary search tree is a type of tree in which every node is organized in the sorted order. It is also called an ordered binary tree. Properties...

4 minutes read.

Deque in Data Structure

Deque A deque referred as “Double-Ended Queue”, is a linear collection of data items same like queue data structure. deque has two ends, front end and rear end, deque is the...

27 minutes read.

Buffer overflow attack with examples

You have undoubtedly faced the term buffer overflow in your programming journey. Many times it occurs when we try to run a piece of code with user input, but it...

4 minutes read.