Open In App

What is Tree | Tree Definition & Meaning in DSA

Improve
Improve
Like Article
Like
Save
Share
Report

A tree is defined as a hierarchical data structure in which the elements (known as nodes) are linked together via edges such that there is only one path between any two node of the tree.

Tree Data Structure

Tree Data Structure

Properties of Trees:

  • Number of edges: An edge can be defined as the connection between two nodes. If a tree has N nodes then it will have (N-1) edges.
  • Depth of a node: The depth of a node is defined as the length of the path from the root to that node. Each edge adds 1 unit of length to the path. So, it can also be defined as the number of edges in the path from the root of the tree to the node.
  • Height of a node: The height of a node can be defined as the length of the longest path from the node to a leaf node of the tree.
  • Height of the Tree: The height of a tree is the length of the longest path from the root of the tree to a leaf node of the tree.
  • Degree of a Node: The total count of subtrees attached to that node is called the degree of the node. The degree of a tree is the maximum degree of a node among all the nodes in the tree.

Types of Tree:

  • 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.

To learn more about types of trees, refer to this article.

Application 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. 

To learn more about applications of tree, refer to this article.

Advantages of Tree:

  • Tree offer Efficient Searching Depending on the type of tree, with average search times of O(log n) for balanced trees like AVL. 
  • Trees provide a hierarchical representation of data, making it easy to organize and navigate large amounts of information.
  • The recursive nature of trees makes them easy to traverse and manipulate using recursive algorithms.

To learn more about the advantages of tree, refer to this article.

Disadvantages of Tree:

  • Unbalanced Trees, meaning that the height of the tree is skewed towards one side, which can lead to inefficient search times.
  • Trees demand more memory space requirements than some other data structures like arrays and linked lists, especially if the tree is very large.
  • The implementation and manipulation of trees can be complex and require a good understanding of the algorithms.

To learn more about disadvantages of tree, refer to this article.

What else can you read?


Last Updated : 06 Jun, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads