Question: Use the following code below named Tree 2 3 4 . java for 2 - 3 - 4 Trees and modify it so that it
Use the following code below named Treejava for Trees and modify it so that it works with trees instead. It should support display, insertion and find methods. Use this and test it in a java file named "TreeTest.java" to ensure that it is working with tree. The "TreeTest.java" is below the java code of "treejava".
public class Tree
private Node root new Node;
public int findlong data
Node current root;
int currentNumber;
while true
if currentNumber current.findItemdataFound what are looking for
return currentNumber;
else if currentisLeafReached to the leaf node without finding what we are looking for
return ;
else
current getNextChildcurrent data; Keep going down the tree to look for data
private Node getNextChildNode node, long data
int i;
int numItems node.getNumItems;
for i; i numItems; i
if data node.getItemidata
return node.getChildi;
return node.getChildi;
public void insertlong value
DataItem data new DataItemvalue;
Node current root;
while true
if currentisFull
splitcurrent;
current getNextChildcurrentgetParent value; Step back up to parent and look for child node to got to
else if currentisLeaf
break;
else
current getNextChildcurrent value;
current.insertItemdata;
private void splitNode node
DataItem itemB, itemC;
Node child child parent;
int itemIndex;
itemC node.removeRightMostItem;
itemB node.removeRightMostItem;
child node.disconnectChild;
child node.disconnectChild;
if node root
parent new Node;
root parent;
root.connectChild node;
else
parent node.getParent;
Insert itemB in parent and keep track of where it is inserted for next step
itemIndex parent.insertItemitemB;
int n parent.getNumItems;
Move existing child nodes if necessary only if current data items were moved to make space for itemB
for int j n; j itemIndex; j
Node t parent.disconnectChildj;
parent.connectChildj t;
Create new sibling and add itemC as well as two child nodes
Node newRight new Node;
newRight.insertItemitemC;
newRight.connectChild child;
newRight.connectChild child;
parent.connectChilditemIndex newRight;
public void display
recursiveTraverseroot;
private void recursiveTraverseNode node
if node null
return;
node.displayNode
for int i; i; i
recursiveTraversenodegetChildi;
TreeTestjava
public class TreeTest
public static void mainString args
Tree tree new Tree;
tree.insert;
tree.insert;
tree.insert;
tree.insert;
tree.insert;
tree.insert;
tree.insert;
tree.insert;
tree.display;
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
