This is a Java Program to implement Binomial Tree.
Here is the source code of the Java program to implement Binomial Tree. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
/**
* Java Program to Implement Binomial Tree
**/
import java.util.*;
/** Class BinoNode **/
class BinoNode
{
int data;
int numNodes;
BinoNode arr[];
/** Constructor **/
public BinoNode(int k)
{
data = -1;
numNodes = k;
arr = new BinoNode[numNodes];
}
}
/** Class BinomialTree **/
class BinomialTree
{
private BinoNode root;
private int order, size;
/** Constructor **/
public BinomialTree(int k)
{
size = 0;
order = k;
root = new BinoNode(order);
createTree(root);
}
/** Function to create a tree **/
private void createTree(BinoNode r)
{
int n = r.numNodes;
if (n == 0)
return;
for (int i = 0; i < n; i++)
{
r.arr[i] = new BinoNode(i);
createTree(r.arr[i]);
}
}
/** Function to clear tree **/
public void clear()
{
size = 0;
root = new BinoNode(order);
createTree(root);
}
/** Function to check if tree is empty **/
public boolean isEmpty()
{
return size == 0;
}
/** Function to get size of tree **/
public int getSize()
{
return size;
}
/** Function to insert a value **/
public void insert(int val)
{
try
{
insert(root, val);
}
catch (Exception e)
{
}
}
/** Function to insert a value **/
private void insert(BinoNode r, int val) throws Exception
{
if (r.data == -1)
{
r.data = val;
size++;
throw new Exception("inserted !");
}
int n = r.numNodes;
for (int i = 0; i < n; i++)
insert(r.arr[i], val);
}
/** Function to print tree **/
public void printTree()
{
System.out.print("\nBinomial Tree = ");
printTree(root);
System.out.println();
}
/** Function to print tree **/
private void printTree(BinoNode r)
{
if (r.data != -1)
System.out.print(r.data +" ");
int n = r.numNodes;
if (n == 0)
return;
for (int i = 0; i < n; i++)
printTree(r.arr[i]);
}
}
public class BinomialTreeTest
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Binomial Tree Test\n");
System.out.println("\nEnter order of binomial tree");
/** Creating object of Binomial tree **/
BinomialTree bt = new BinomialTree(scan.nextInt());
char ch;
/** Perform tree operations **/
do
{
System.out.println("\nBinomial Tree Operations\n");
System.out.println("1. insert ");
System.out.println("2. size");
System.out.println("3. check empty");
System.out.println("4. clear");
int choice = scan.nextInt();
switch (choice)
{
case 1 :
System.out.println("Enter integer element to insert");
bt.insert( scan.nextInt() );
break;
case 2 :
System.out.println("Nodes = "+ bt.getSize());
break;
case 3 :
System.out.println("Empty status = "+ bt.isEmpty());
break;
case 4 :
bt.clear();
System.out.println("\nTree Cleared\n");
break;
default :
System.out.println("Wrong Entry \n ");
break;
}
/** Display tree **/
bt.printTree();
System.out.println("\nDo you want to continue (Type y or n) \n");
ch = scan.next().charAt(0);
} while (ch == 'Y'|| ch == 'y');
}
}
Binomial Tree Test Enter order of binomial tree 3 Binomial Tree Operations 1. insert 2. size 3. check empty 4. clear 1 Enter integer element to insert 24 Binomial Tree = 24 Do you want to continue (Type y or n) y Binomial Tree Operations 1. insert 2. size 3. check empty 4. clear 1 Enter integer element to insert 6 Binomial Tree = 24 6 Do you want to continue (Type y or n) y Binomial Tree Operations 1. insert 2. size 3. check empty 4. clear 1 Enter integer element to insert 19 Binomial Tree = 24 6 19 Do you want to continue (Type y or n) y Binomial Tree Operations 1. insert 2. size 3. check empty 4. clear 1 Enter integer element to insert 94 Binomial Tree = 24 6 19 94 Do you want to continue (Type y or n) y Binomial Tree Operations 1. insert 2. size 3. check empty 4. clear 1 Enter integer element to insert 28 Binomial Tree = 24 6 19 94 28 Do you want to continue (Type y or n) y Binomial Tree Operations 1. insert 2. size 3. check empty 4. clear 1 Enter integer element to insert 5 Binomial Tree = 24 6 19 94 28 5 Do you want to continue (Type y or n) y Binomial Tree Operations 1. insert 2. size 3. check empty 4. clear 1 Enter integer element to insert 16 Binomial Tree = 24 6 19 94 28 5 16 Do you want to continue (Type y or n) y Binomial Tree Operations 1. insert 2. size 3. check empty 4. clear 1 Enter integer element to insert 63 Binomial Tree = 24 6 19 94 28 5 16 63 Do you want to continue (Type y or n) y Binomial Tree Operations 1. insert 2. size 3. check empty 4. clear 1 Enter integer element to insert 17 Binomial Tree = 24 6 19 94 28 5 16 63 Do you want to continue (Type y or n) y Binomial Tree Operations 1. insert 2. size 3. check empty 4. clear 2 Nodes = 8 Binomial Tree = 24 6 19 94 28 5 16 63 Do you want to continue (Type y or n) y Binomial Tree Operations 1. insert 2. size 3. check empty 4. clear 3 Empty status = false Binomial Tree = 24 6 19 94 28 5 16 63 Do you want to continue (Type y or n) y Binomial Tree Operations 1. insert 2. size 3. check empty 4. clear 4 Tree Cleared Binomial Tree = Do you want to continue (Type y or n) y Binomial Tree Operations 1. insert 2. size 3. check empty 4. clear 3 Empty status = true Binomial Tree = Do you want to continue (Type y or n) n
Related posts:
Automatic Property Expansion with Spring Boot
Spring Cloud AWS – Messaging Support
Java Program to Implement IdentityHashMap API
Removing all Nulls from a List in Java
Tips for dealing with HTTP-related problems
Collection trong java
The Order of Tests in JUnit
Setting a Request Timeout for a Spring REST API
Adding a Newline Character to a String in Java
Spring Security Remember Me
Spring Boot Annotations
Java Program to Implement Gauss Jordan Elimination
Guide to Java 8’s Collectors
Java Program to Implement Treap
HashMap trong Java hoạt động như thế nào?
Java Program to Implement Warshall Algorithm
Spring Boot Gradle Plugin
Java Program to Implement Hash Tables Chaining with Binary Trees
Find the Registered Spring Security Filters
Java Program to Find Location of a Point Placed in Three Dimensions Using K-D Trees
Registration with Spring Security – Password Encoding
Hướng dẫn Java Design Pattern – Template Method
HashSet trong Java hoạt động như thế nào?
Predicate trong Java 8
Java Program to Implement Circular Doubly Linked List
Spring Boot - Enabling HTTPS
Hướng dẫn Java Design Pattern – Interpreter
Java Program to Find kth Smallest Element by the Method of Partitioning the Array
Custom Error Pages with Spring MVC
Java Program to Implement Max Heap
Mix plain text and HTML content in a mail
Java Program to Implement Dijkstra’s Algorithm using Queue