1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Margaret [11]
3 years ago
10

Define a class called TreeNode containing three data fields: element, left and right. The element is a generic type. Create cons

tructors, setters and getters as appropriate. (20) Define a class called BinaryTree containing two data fields: root and numberElement. Create constructors, setters and getters as appropriate. (10) Define a method balanceCheck to check if a tree is balanced. A tree being balanced means that the balance factor is -1, 0, or 1. (20)
Computers and Technology
1 answer:
m_a_m_a [10]3 years ago
5 0

Answer:

See explaination

Explanation:

// Class for BinarySearchTreeNode

class TreeNode

{

// To store key value

public int key;

// To point to left child

public TreeNode left;

// To point to right child

public TreeNode right;

// Default constructor to initialize instance variables

public TreeNode(int key)

{

this.key = key;

left = null;

right = null;

key = 0;

}// End of default constructor

}// End of class

// Defines a class to crate binary tree

class BinaryTree

{

// Creates root node

TreeNode root;

int numberElement;

// Default constructor to initialize root

public BinaryTree()

{

this.root = null;

numberElement = 0;

}// End of default constructor

// Method to insert key

public void insert(int key)

{

// Creates a node using parameterized constructor

TreeNode newNode = new TreeNode(key);

numberElement++;

// Checks if root is null then this node is the first node

if(root == null)

{

// root is pointing to new node

root = newNode;

return;

}// End of if condition

// Otherwise at least one node available

// Declares current node points to root

TreeNode currentNode = root;

// Declares parent node assigns null

TreeNode parentNode = null;

// Loops till node inserted

while(true)

{

// Parent node points to current node

parentNode = currentNode;

// Checks if parameter key is less than the current node key

if(key < currentNode.key)

{

// Current node points to current node left

currentNode = currentNode.left;

// Checks if current node is null

if(currentNode == null)

{

// Parent node left points to new node

parentNode.left = newNode;

return;

}// End of inner if condition

}// End of outer if condition

// Otherwise parameter key is greater than the current node key

else

{

// Current node points to current node right

currentNode = currentNode.right;

// Checks if current node is null

if(currentNode == null)

{

// Parent node right points to new node

parentNode.right = newNode;

return;

}// End of inner if condition

}// End of outer if condition

}// End of while

}// End of method

// Method to check tree is balanced or not

private int checkBalance(TreeNode currentNode)

{

// Checks if current node is null then return 0 for balanced

if (currentNode == null)

return 0;

// Recursively calls the method with left child and

// stores the return value as height of left sub tree

int leftSubtreeHeight = checkBalance(currentNode.left);

// Checks if left sub tree height is -1 then return -1

// for not balanced

if (leftSubtreeHeight == -1)

return -1;

// Recursively calls the method with right child and

// stores the return value as height of right sub tree

int rightSubtreeHeight = checkBalance(currentNode.right);

// Checks if right sub tree height is -1 then return -1

// for not balanced

if (rightSubtreeHeight == -1) return -1;

// Checks if left and right sub tree difference is greater than 1

// then return -1 for not balanced

if (Math.abs(leftSubtreeHeight - rightSubtreeHeight) > 1)

return -1;

// Returns the maximum value of left and right subtree plus one

return (Math.max(leftSubtreeHeight, rightSubtreeHeight) + 1);

}// End of method

// Method to calls the check balance method

// returns false for not balanced if check balance method returns -1

// otherwise return true for balanced

public boolean balanceCheck()

{

// Calls the method to check balance

// Returns false for not balanced if method returns -1

if (checkBalance(root) == -1)

return false;

// Otherwise returns true

return true;

}//End of method

// Method for In Order traversal

public void inorder()

{

inorder(root);

}//End of method

// Method for In Order traversal recursively

private void inorder(TreeNode root)

{

// Checks if root is not null

if (root != null)

{

// Recursively calls the method with left child

inorder(root.left);

// Displays current node value

System.out.print(root.key + " ");

// Recursively calls the method with right child

inorder(root.right);

}// End of if condition

}// End of method

}// End of class BinaryTree

// Driver class definition

class BalancedBinaryTreeCheck

{

// main method definition

public static void main(String args[])

{

// Creates an object of class BinaryTree

BinaryTree treeOne = new BinaryTree();

// Calls the method to insert node

treeOne.insert(1);

treeOne.insert(2);

treeOne.insert(3);

treeOne.insert(4);

treeOne.insert(5);

treeOne.insert(8);

// Calls the method to display in order traversal

System.out.print("\n In order traversal of Tree One: ");

treeOne.inorder();

if (treeOne.balanceCheck())

System.out.println("\n Tree One is balanced");

else

System.out.println("\n Tree One is not balanced");

BinaryTree

BinaryTree treeTwo = new BinaryTree();

treeTwo.insert(10);

treeTwo.insert(18);

treeTwo.insert(8);

treeTwo.insert(14);

treeTwo.insert(25);

treeTwo.insert(9);

treeTwo.insert(5);

System.out.print("\n\n In order traversal of Tree Two: ");

treeTwo.inorder();

if (treeTwo.balanceCheck())

System.out.println("\n Tree Two is balanced");

else

System.out.println("\n Tree Two is not balanced");

}// End of main method

}// End of driver class

You might be interested in
Communication among office computers is based on a protocol that uses CRC-32 for error detection. A series of 100 identical test
Fiesta28 [93]
I think it is the CRC-32 for error detection
4 0
2 years ago
Nothing bottomnothing
elena-s [515]

Answer:humans need energy to complete the regular body requirements to digest our food,to breathe,to move,to run,to travel and continue the metabolism of our regular life.

Explanation:energy is essential to life and all living thing organisms.

8 0
3 years ago
I need someone to help me like rnnnnn please
nevsk [136]

.send me 1000 ruppes i will answer each and every question you send send 1000 ruppes to this number 93257 50999

6 0
2 years ago
Darian has a gourmet cupcake business and needs a website to compete with the other bakeries in his area. He has a Google My Bus
Amiraneli [1.4K]

Answer:

The sequences are given below that is 3, 4, 5, 2, and 1.

Explanation:

The following steps are taken to develop the site via Google My Business.

  • In the first case, He signs his Google My Business.
  • In the second case, the site is accessed from the Home menu.
  • In the third case, the appropriate business details become modified.
  • In the fourth case, he attaches photos, like such a cover picture as well as a virtual guide.
  • In the fifth case, he selects the particular domains as well as directs this to the site.
7 0
3 years ago
Anil needs to show the overlap of people who live in a certain neighborhood in his city and who support a specific political can
pantera1 [17]

Since Anil needs to show the overlap of people who live in a certain neighborhood in his city that supports a specific political candidate, the type of conceptual diagram which he should use is a: B: Venn diagram.

<h3>What is a Venn diagram?</h3>

A Venn diagram can be defined as a circular graphical (visual) tool that is typically used for representing, logically comparing and contrasting two (2) or more finite sets of data such as objects, students, events, voters, concepts, people, etc.

In this context, we can reasonably infer and logically deduce that a Venn diagram is a type of conceptual diagram which can be used by Anil in illustrating the overlap of people who are living in a certain neighborhood in his city and supports a specific political candidate in an election.

Read more on Venn diagram here: brainly.com/question/24581814

#SPJ1

8 0
8 months ago
Other questions:
  • Natural selection is a. how systems of rewards increase desired behaviors. b. the idea that the observable environment affects b
    6·1 answer
  • Match the challenge with the term or process that offers a solution.
    6·1 answer
  • Blank spaces or unseen control characters in a data file are referred to as
    5·2 answers
  • Ashley works for a movie theater. The theater has decided to host some special events over the summer. She needs to communicate
    8·2 answers
  • You are an IT technician at your company. The company has two small offices in different cities. The company's head office conta
    5·1 answer
  • Wrtie down some containerization technology.
    11·1 answer
  • Which of the following would be better communicated with an image than with text?
    9·1 answer
  • Write bash script which takes array as an input of size 10 bind its even indexes to accept even values and odd indexes to accept
    5·1 answer
  • Which one way in which using infrared in game console controllers could affect the experience of a person playing the game?
    8·1 answer
  • What programming language does the LMC 'understand'?
    5·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!