0
嘿家伙! :) 我在添加密钥inorder到我的密钥集方面遇到了很多麻烦。 如何在设备上添加按键? :/ 最糟糕的是,它没有显示我以外的所有它说的是如何在二叉搜索树中实现keySet方法
at TreeMap.inorder(TreeMap.java:188)
at TreeMap.keySet(MyTreeMap.java:60)
at TreeMap.main(MyTreeMap.java:244)
Java Result: 1
这只是我的代码片段,一切正常,但我的keySet /序的方法。我的代码188行是
keys.add(tree.getRoot().key);
我已经搜索,重试,并再次搜索,但不能得到任何地方。我将不胜感激任何帮助,你们可以给我。 在此先感谢! :)
下面是二叉树类
public class BinaryTree<E>
{
private E root;
private BinaryTree<E> left;
private BinaryTree<E> right;
public BinaryTree(E paramE, BinaryTree<E> paramBinaryTree1, BinaryTree<E> paramBinaryTree2)
{
this.root = paramE;
this.left = paramBinaryTree1;
this.right = paramBinaryTree2;
}
public BinaryTree(E paramE)
{
this(paramE, null, null);
}
public E getRoot()
{
return (E)this.root;
}
public BinaryTree<E> getLeft()
{
return this.left;
}
public BinaryTree<E> getRight()
{
return this.right;
}
public E setRoot(E paramE)
{
Object localObject = this.root;
this.root = paramE;
return (E)localObject;
}
public BinaryTree<E> setLeft(BinaryTree<E> paramBinaryTree)
{
BinaryTree localBinaryTree = this.left;
this.left = paramBinaryTree;
return localBinaryTree;
}
public BinaryTree<E> setRight(BinaryTree<E> paramBinaryTree)
{
BinaryTree localBinaryTree = this.right;
this.right = paramBinaryTree;
return localBinaryTree;
}
public String toString()
{
StringBuilder localStringBuilder = new StringBuilder("" + this.root);
if (!isLeaf())
{
localStringBuilder.append("(");
if (this.left != null) {
localStringBuilder.append(this.left);
}
if (this.right != null) {
localStringBuilder.append("," + this.right);
}
localStringBuilder.append(")");
}
return localStringBuilder + "";
}
public boolean isLeaf()
{
return (this.left == null) && (this.right == null);
}
}
您可以发布完整的异常堆栈跟踪,我们需要看到的二叉树的实现。 –
好吧我添加了BinaryTree类 –
在'Element'中,实例变量'key'没有封装修饰符,但您试图通过调用'tree.getRoot()。key'来访问它,就好像它是公共的一样。在这个实现中还有很多其他的东西会改变,但我认为你得到的(神秘)异常是因为当它在该范围内不可见时直接尝试访问'key'。当我说完全堆栈跟踪时,我的意思是包括Exception类型。 –