Проблема создания объекта бинарного дерева поиска - PullRequest
0 голосов
/ 08 декабря 2018

Это мой первый вопрос, поэтому заранее прошу прощения, если я пропустил какое-либо руководство.

Я работаю над бинарным деревом поиска для целей обучения в течение последних 3 дней, и у меня возникла одна проблема на один день.пытался отладить его столько, сколько смогу.Также попытался поискать в Интернете, чтобы увидеть, есть ли какая-либо помощь, но безуспешно.

У меня есть 3 класса

основной класс bst class integerset class

integerset имеет этот конструктор

public IntegerSet(int arr[]) 
{
    this.bst1 = new BST();
    for (int i = 0; i < arr.length; i++) {
        this.bst1.insert(arr[i]);
        this.magnitude = this.bst1.getSize();
    }

}

, которые создают объект bst и вставляют элементы массива в bst.

, когда я делаю это из main

int[] arr = {1,2,3,4,5};
iSet = new IntegerSet(arr);

, все работает нормально, но когда я создаю другойобъект

int[] arr2 = {4,5,6,7};
iSet2 = new IntegerSet(arr2);

после создания 2-го объекта оба имеют одинаковый bst, который содержит 2-й массив.пытался решить эту проблему, но не понимает, почему это происходит, у обоих должен быть свой собственный целочисленный объект со своим собственным bst.

1 Ответ

0 голосов
/ 09 декабря 2018

Проверьте реализацию IntegerSet.Должно быть так:

class IntegerSet {
    private final BST bst = new BST();
    private int magnitude;

    public IntegerSet(int[] arr) {
        for(int val : arr)
            bst.insert(val);
        magnitude = bst.getSize();
    }   
}
...