这是我的第一个问题,因此,如果我错过任何指导原则,请提前道歉。
过去3天,我一直在研究用于搜索目的的二进制搜索树,而现在我每天只遇到一个问题。尝试尽可能地调试它。还尝试在互联网上进行搜索,看看是否有帮助,但没有成功。
我有3个班级
主班 班级 整数集类
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);
创建第二个对象后的都具有相同的bst,其中包含第二个数组。 一直试图解决这个问题,但不明白为什么会发生这种情况,两个都应该有自己的整数集对象和自己的bst。
答案 0 :(得分:0)
检查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();
}
}