【发布时间】:2014-01-10 16:52:12
【问题描述】:
我目前正在与 BST 合作,我的插入方法存在一些问题,尽管这对我来说似乎很合乎逻辑。经过调试,我发现我使用的变量的赋值有问题,就像每次我尝试插入一个节点时,它都会作为根插入,因此会打印出“不允许重复”。
为此,我分别使用 4 个类。以下方法位于扩展 BinaryTree 类的 BinarySearchTree 类中。在二叉树类中,我有一个受保护的 BinaryTreeNode 和其他用于树遍历的方法。
从 Main 调用方法:
int value;
System.out.println("Number of elements to be inserted: ");
value = input.nextInt();
for (int i = 0; i < value; i++) {
System.out.print("Enter next element ");
num = console.nextInt();
x.setNum(num);
tree.insert(x);
}
问题在于 main 方法中的方法调用,而不是 inset 本身。
【问题讨论】:
-
你在哪里打电话给
insert?您实际上是在插入两个不同的DataElement对象吗? -
@crush insert 在 main 方法中调用,我有一个 for 循环,要求用户插入插入树中的不同值。我实际上插入了 1 个 DataElement。
-
我们可以看看那个方法吗?
-
你认为什么是重复的?是对同一个对象的引用,还是两个具有相同值的对象?
-
好吧,我正在尝试向树中插入不同的值,当我插入第一个值时,这不是问题,但是当我开始插入其余的值时,它会打印出重复消息。重复我的意思是在树中,没有 2 个节点可以具有相同的值
标签: java tree binary-search-tree