每次迭代都会记住的Java列表

时间:2017-11-14 16:33:52

标签: java class binary-search-tree

我在名为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;
                }
            }
        }
    }
}
}

0 个答案:

没有答案