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:
Spring Boot - Enabling Swagger2
Java Program to Perform Naive String Matching
Beans and Dependency Injection
Java Program to Implement Fisher-Yates Algorithm for Array Shuffling
Filtering a Stream of Optionals in Java
Java Program to Construct an Expression Tree for an Infix Expression
Set Interface trong Java
Java Program to Implement Sorted Circular Doubly Linked List
Comparing Objects in Java
Java Program to Implement TreeMap API
Java Program to Implement Gabow Algorithm
Introduction to the Java NIO Selector
Java Program to Generate Random Numbers Using Probability Distribution Function
Properties with Spring and Spring Boot
Quick Guide to Spring MVC with Velocity
Java Program to Implement Leftist Heap
Hướng dẫn sử dụng luồng vào ra nhị phân trong Java
Java Program to Implement Affine Cipher
Count Occurrences of a Char in a String
Java Program to Compute Cross Product of Two Vectors
Java Program to Implement Branch and Bound Method to Perform a Combinatorial Search
How to Set TLS Version in Apache HttpClient
Removing all Nulls from a List in Java
Guide to Mustache with Spring Boot
Java – Get Random Item/Element From a List
Getting a File’s Mime Type in Java
Java Program to Perform Postorder Non-Recursive Traversal of a Given Binary Tree
Bootstrap a Web Application with Spring 5
A Guide to Java 9 Modularity
Reactive WebSockets with Spring 5
Java Program to Implement Circular Singly Linked List
The Registration Process With Spring Security