Height of a complete binary tree (or Heap) with N nodes
Consider a Binary Heap of size N. We need to find the height of it.
Examples:
Input : N = 6 Output : 2 () / \ () () / \ / () () () Input : N = 9 Output : 3 () / \ () () / \ / \ () () () () / \ () ()
Let the size of the heap be N and the height be h. If we take a few examples, we can notice that the value of h in a complete binary tree is floor(log2N).
Examples:
N h --------- 1 0 2 1 3 1 4 2 5 2 ..... .....
Implementation:
C++
// CPP program to find height of complete // binary tree from total nodes. #include <bits/stdc++.h> using namespace std; int height( int N) { return floor (log2(N)); } // driver node int main() { int N = 2; cout << height(N); return 0; } |
Java
// Java program to find height // of complete binary tree // from total nodes. import java.lang.*; class GFG { // Function to calculate height static int height( int N) { return ( int )Math.ceil(Math.log(N + 1 ) / Math.log( 2 )) - 1 ; } // Driver Code public static void main(String[] args) { int N = 6 ; System.out.println(height(N)); } } // This code is contributed by // Smitha Dinesh Semwal |
Python 3
# Python 3 program to find # height of complete binary # tree from total nodes. import math def height(N): return math.ceil(math.log2(N + 1 )) - 1 # driver node N = 6 print (height(N)) # This code is contributed by # Smitha Dinesh Semwal |
C#
// C# program to find height // of complete binary tree // from total nodes. using System; class GFG { static int height( int N) { return ( int )Math.Ceiling(Math.Log(N + 1) / Math.Log(2)) - 1; } // Driver node public static void Main() { int N = 6; Console.Write(height(N)); } } // This code is contributed by // Smitha Dinesh Semwal |
PHP
<?php // PHP program to find height // of complete binary tree // from total nodes. function height( $N ) { return ceil (log( $N + 1, 2)) - 1; } // Driver Code $N = 6; echo height( $N ); // This code is contributed by aj_36 ?> |
Javascript
<script> // Javascript program to find height // of complete binary tree // from total nodes. function height(N) { return Math.ceil(Math.log(N + 1) / Math.log(2)) - 1; } let N = 6; document.write(height(N)); </script> |
Output
1
Time Complexity: O(1), Since performing constant operations.
Auxiliary Space: O(1), Since constant extra space is used.
Please Login to comment...