JAVA PROGRAMMING : Binary Tree Removal ALSO WRITE A TEST CLASS TO TEST THE CODES
ID: 3575887 • Letter: J
Question
JAVA PROGRAMMING : Binary Tree Removal
ALSO WRITE A TEST CLASS TO TEST THE CODES (Tester.java)
For this assignment, you are required to implement remove method to remove a node from the BT.
1. Create a class named BT.java, which extends BTA, then implement two abstract methods definded in BTA.java
2. Create an aplication to test your implementation of the remove method. You simply create a file named
BTApp.java, then copy/paste the following code
public class BTApp{
public static void main(String[] args){
BT tree=new BT();
tree.insert(new Node(100));
tree.insert(new Node(20));
tree.insert(new Node(56));
tree.insert(new Node(199));
tree.insert(new Node(82));
tree.insert(new Node(82));
tree.inorder();
tree.remove(56);
tree.remove(new Node(82));
tree.inorder();
}
}
======================================
BTA.java:
public abstract class BTA{
private Node root;
public BTA(){
root=null;
}
public BTA(Node root){
setRoot(root);
}
public void insert(Node node){
if(root==null) root=node;
else insertHelper(root, node);
}
private Node insertHelper(Node tree, Node node){
if(tree==null) tree=node;
else if(tree.getData()>=node.getData()){
tree.setLeft(insertHelper(tree.getLeft(), node));
}else{
tree.setRight(insertHelper(tree.getRight(), node));
}
return tree;
}
public boolean contains(int data){
return true;
}
public int size(){
return sizeHelper(root);
}
private int sizeHelper(Node node){
if(node==null) return 0;
return 1 + sizeHelper(node.getLeft()) + sizeHelper(node.getRight());
}
public boolean empty(){
return root ==null;
}
public int max(){
Node tmp=root;
while(tmp.getRight() !=null)
tmp=tmp.getRight();
return tmp.getData();
}
public int min(){
if(empty())
return 0;
else
return minHelper(root);
}
private int minHelper(Node node)
{
if(node.getLeft() == null)
return node.getData();
else
return minHelper(node.getLeft());
}
public void inorder(){
inorderHelper(root);
}
private void inorderHelper(Node tree){
if(tree !=null){
inorderHelper(tree.getLeft());
System.out.print(tree.getData()+" ");
inorderHelper(tree.getRight());
}
}
public Node getRoot(){
return root;
}
public void setRoot(Node root){
this.root = root;
}
public abstract void remove(int val);
public abstract void remove(Node node);
}
======================================
Node.java
public class Node{
private int data;
private Node left;
private Node right;
public Node( int data){
this.data = data;
left=right=null;
}
public Node(int data, Node left, Node right){
setData(data);
setLeft(left);
setRight(right);
}
public int getData(){
return data;
}
public Node getLeft(){
return left;
}
public Node getRight(){
return right;
}
public void setData(int data){
this.data = data;
}
public void setLeft(Node left){
this.left = left;
}
public void setRight(Node right){
this.right = right;
}
}
Explanation / Answer
20 56 82 82 100 199
20 82 100 199
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.