2015-10-27 34 views
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); 
    } 
} 
+0

您可以发布完整的异常堆栈跟踪,我们需要看到的二叉树的实现。 –

+0

好吧我添加了BinaryTree类 –

+0

在'Element'中,实例变量'key'没有封装修饰符,但您试图通过调用'tree.getRoot()。key'来访问它,就好像它是公共的一样。在这个实现中还有很多其他的东西会改变,但我认为你得到的(神秘)异常是因为当它在该范围内不可见时直接尝试访问'key'。当我说完全堆栈跟踪时,我的意思是包括Exception类型。 –

回答

0

的TreeSet的,根据你的代码,从来没有初始化

TreeSet的TS =新TreeSet的();

我认为应该修复它...

+0

谢谢!我简直不敢相信那简单的我错过了! –