Tuesday 28 April 2020

Algorithm for finding maximum element in binary tree : Iterative Way


//Iterative Way: Non-Recursive Way

public class BinaryTreeMaxNodeElementIterativeModel {

      class TreeNode {
            TreeNode left, right;
            int data; // considering integer data.
      
            public TreeNode(int dataItem) {
                 this.data = dataItem;
                 left = null;
                 right = null;
           }
      }
       TreeNode root;
       BinaryTreeMaxNodeElementIterativeModel(){
             root = null;
       }
      
       public int maxNodeElementBinaryTree(TreeNode root) {
             int maxElement = 0;
            
             if(root != null) {
                    Queue<TreeNode> q = new LinkedList<TreeNode>();
                    q.offer(root); // Add root to queue.
                    while(!q.isEmpty()) {
                          TreeNode temp = q.poll(); // Remove an element from queue.
                          if(temp.data > maxElement) {
                                 maxElement = temp.data;
                          }
                         
                          if(temp.left != null) {
                                 q.offer(temp.left);
                          }
                          if(temp.right != null) {
                                 q.offer(temp.right);
                          }
                    }
             }           
             return maxElement;
       }
      
       void maxNodeElementBinaryTree(){
             int maxElement = maxNodeElementBinaryTree(root);
             System.out.println("Count of Binary Tree = " + maxElement);
       }
       public static void main(String[] args) {
             BinaryTreeMaxNodeElementIterativeModel binaryTreeMaxNodeElementIterativeModel = new BinaryTreeMaxNodeElementIterativeModel();
            
             binaryTreeMaxNodeElementIterativeModel.root = new TreeNode(1);
             binaryTreeMaxNodeElementIterativeModel.root.left = new TreeNode(2);
             binaryTreeMaxNodeElementIterativeModel.root.right = new TreeNode(3);
            
             binaryTreeMaxNodeElementIterativeModel.root.left.left = new TreeNode(4);
             binaryTreeMaxNodeElementIterativeModel.root.left.right = new TreeNode(5);
             binaryTreeMaxNodeElementIterativeModel.root.right.left = new TreeNode(6);
             binaryTreeMaxNodeElementIterativeModel.root.right.right = new TreeNode(7);
            
              binaryTreeMaxNodeElementIterativeModel.maxNodeElementBinaryTree();
       }

}


Output : 7

Thanks..!!

4 comments:

  1. good alogorithm code for finding max element & good technology blog

    ReplyDelete
  2. Nice Post! Thanks for sharing such an amazing article, really informative, it helps me a lot.
    1Z0-900: Java EE 7 Application Developer

    ReplyDelete

  3. Hello! I want to say that this article is amazing, nice written and come with almost all vital Information. I would like to see more posts like this. Some Questions to Check How Serious Your Prospect is for Buying

    ReplyDelete

  4. I am is grateful for the article. I am really looking forward to reading more. Also read this..
    5 Mistakes Beginner Web Developers Commit and How to Fix Them

    ReplyDelete