package dataStructure.tree;
public class SizeOfTree {
public static void main(String[] args) {
Node rL = new Node(null, 5, null);
Node rR = new Node(null, 15, null);
Node root = new Node(rL, 10, rR);
System.out.println(sizeOfTree(root));
}
public static int sizeOfTree(Node root){
if(null == root){
return 0;
}
return sizeOfTree(root.left) + 1 + sizeOfTree(root.right);
}
private static class Node{
@SuppressWarnings("unused")
public int key;
public Node left;
public Node right;
/**
* @param key
* @param left
* @param right
*/
public Node(Node left, int key, Node right) {
this.key = key;
this.left = left;
this.right = right;
}
}
}
Thursday, June 8, 2017
Program to Calculate Size of a Binary tree
Number of nodes available in a tree will be called size of tree. Below is the recursive program to calculate size of a binary tree.
Monday, June 5, 2017
Breadth First Traversal Or Level Order Traversal
Breadth-first
search (BFS) is an algorithm for traversing or
searching tree or graph data
structures. It starts at the tree
root and explores the neighbor nodes
first, before moving to the next level neighbors.
Time complexity:
BFS require O(n) time as it
visits every node exactly once.
Extra Space:
Extra Space required for Level
Order Traversal is O(w) where w is maximum width of Binary Tree.
Java Code:
package dataStructure.tree;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
/**
* @author Rajendar Kumar
*
*/
public class BFSWithQueue {
/**
* @param args
*/
public static void main(String[] args) {
Node rLl = new Node(null, 4, null);
Node rLr = new Node(null, 5, null);
Node rRl = new Node(null, 6, null);
Node rRr = new Node(null, 7, null);
Node rL = new Node(rLl, 2, rLr);
Node rR = new Node(rRl, 3, rRr);
Node root = new Node(rL, 1, rR);
List<Integer> list =bfs(root);
for (Integer integer : list) {
System.out.print(integer+" ");
}
}
public static List<Integer> bfs(Node root){
List<Integer> list = new ArrayList<>();
Queue<Node> hList = new LinkedList<>();
Node temp = root;
while(null != temp){
list.add(temp.key);
if(null != temp.left){
hList.add(temp.left);
}
if(null != temp.right){
hList.add(temp.right);
}
temp = hList.poll();
}
return list;
}
}
package dataStructure.tree;
/**
* @author Rajendar Kumar
*
*/
public class Node {
public int key;
public Node left;
public Node right;
public Node(Node left, int key, Node right) {
this.key = key;
this.left = left;
this.right = right;
}
}
Subscribe to:
Posts (Atom)