我在名为BinaryTree的类中创建了一个BST
我正在尝试在名为Test的类中创建具有特定值的节点,并将它们添加到名为AddToTree的类中的二叉树中。目前我已经创建了一个名为BinaryTree的类,它知道在给定正确值时如何创建BST。
当我在类AddToTree中创建多个节点时工作正常,但是当我尝试从类Test中执行它时,我相信树从每个新节点开始。我的问题是如何让它记住之前添加的所有值。
以下是Test类调用的方法(addToBST),它应该将节点添加到树中并记住它们:
public class AddToTree implements SomeClass {
private BinaryTree waitingLine1 = new BinaryTree();
private BinaryTree waitingLine2 = new BinaryTree();
@Override
public SimpleEntry<SomeClass, Someclass> addToBST(Someclass someclass) throws IllegalArgumentException {
waitingLine1.addNode(fristData, secondData, thirdData);
return null;
}
现在我用我的Test类调用它:
public class Test {
public static void main(String[] args) {
foo();
}
static void foo() {
AddToTree impl = new AddToTree();
addNodeAndTest(30, 120, null);
}
private static void addNodeAndTest(AddToTree impl, int firstValue, int secondValue, int thirdValue) {
//Some code
}
我认为添加BST类是无关紧要的,因为我不在该类中创建列表。我应该创建一个包含列表实现的新类,还是应该如何记住列表 如果你能指出我正确的方向,我会非常感激 如果需要,我可以提供其他信息。
EDIT! 这是我如何创建BinaryTree(addNode方法)。
public class BinaryTree{
Node root = null;
public void addNode(int firstValue, int secondValue, int thirdValue) {
Node newNode = new Node(fristValue, secondValue, thirdValue);
if (root == null) {
root = newNode;
} else {
Node focusNode = root;
Node parent;
while (true) {
parent = focusNode;
if (ID < focusNode.firstValue) {
focusNode = focusNode.leftChild;
if (focusNode == null) {
parent.leftChild = newNode;
return;
}
} else {
focusNode = focusNode.rightChild;
if (focusNode == null) {
parent.rightChild = newNode;
return;
}
}
}
}
}
}