Introduction - Tree

Introduction - Tree


  • A tree is a data structure that is commonly used in computer science to store and organize data in a hierarchical manner. At the top of the tree is a root node, which branches out into multiple child nodes. Each child node can then have its own child nodes, creating a tree-like structure.

  • Special directed/undirected graph with N nodes and N-1 edges.

  • Each node is can be reached from other nodes by some path.

  • No cycles.

  • Directed when you can only go from parent to child.

public class TreeNode {
  private int value;
  List<TreeNode> children;
  • Usually tree problems are asked for binary tree.

Binary Tree

  • It is a hierarchical structure consisting of nodes, where each node has at most two children. The children of a node are referred to as the left child and the right child.
public class BinaryTreeNode {
  private int data;
  private BinaryTreeNode left;
  private BinaryTreeNode right;

  public BinaryTreeNode(int data) { = data;
    this.left = null;
    this.right = null;

  public int getData() {

  public void setData(int data) { = data;

  public BinaryTreeNode getLeft() {
    return this.left;

  public void setLeft(BinaryTreeNode left) {
    this.left = left;

  public BinaryTreeNode getRight() {
    return this.right;

  public void setRight(BinaryTreeNode right) {
    this.right = right;
  • Special binary trees

    • Complete binary tree.

    • Full binary tree.

      • No of nodes in a full binary tree

      • Height of full binary tree - log (number of nodes)

      • 2^H - 1 = total nodes

      • H = log (total nodes)

    • Binary search tree (Explained in another blog)

    • Balanced binary tree (AVL , Red black)

Operations on Binary Tree or detailed explanation of Binary and Binary Search Tree will be in next blog. Keep in touch.

So this is it for this article. I hope it helped you somewhere. Don't forget to support us and share with other geekians.

Thank you, Have a nice day !!