/**
* Find Height of a Tree
*
* @author:http://javainterviewprograms.blogspot.in/
*
*/
public class Height_Of_The_Tree {
public static void main(String[] args) {
// Binary search tree
Binary_Tree tree = new Binary_Tree();
tree.addNode(50);
tree.addNode(40);
tree.addNode(60);
tree.addNode(30);
tree.addNode(45);
tree.addNode(55);
tree.addNode(54);
tree.addNode(20);
tree.addNode(10);
// root.PreOrderTraversal();
int height = HeightOfTree(tree.getRoot());
System.out.println("Height Of
Tree:" + height);
// Level Order Traversal
Without Stack
LevelOrderTraversal(tree.getRoot(),
height);
}
public static void LevelOrderTraversal(BSTNode root,
int height)
{
{
for (int i = 1; i
<= height; i++) {
LevelOrderTraversalUtil(root,
i, 1);
System.out.println();
}
}
private static void LevelOrderTraversalUtil(BSTNode root,
int level, int i)
{
{
if (root == null)
return;
if (i == level) {
System.out.print(root.data + "
");
//
System.out.print(" data:"+root.data +" "+"
level:"+level);
}
i++;
LevelOrderTraversalUtil(root.left,
level, i);
LevelOrderTraversalUtil(root.right,
level, i);
}
public static int HeightOfTree(BSTNode root)
{
{
if (root == null) {
return 0;
}
int letfHeight = HeightOfTree(root.left);
int rightHeight = HeightOfTree(root.right);
if (letfHeight > rightHeight)
return 1 + letfHeight;
else
return 1 + rightHeight;
}
}
Output:
Height Of Tree:5
50
40 60
30 45 55
20 54
10
No comments:
Post a Comment