二进制搜索树对象创建问题



这是我在这里的第一个问题,如果我错过了任何指导原则,请提前道歉。

在过去的三天里,我一直在学习二进制搜索树,现在我一天都在处理一个问题。我试着尽可能多地调试它。还试着在互联网上搜索,看看是否有任何帮助,但没有成功。

我有三个等级的

主舱bst类整数集类

整数集有这个构造函数

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.

当我在主上这样做的时候

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

它工作得很好,但当我创建另一个对象时

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

在创建第二个对象之后,两个对象都有相同的bst,其中包含第二个数组。一直在尝试解决这个问题,但不明白为什么会发生这种情况。两者都应该有自己的整数集对象和自己的bst。

检查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();
}   
}

最新更新