Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中一个类中的简单二叉树_Java - Fatal编程技术网

Java中一个类中的简单二叉树

Java中一个类中的简单二叉树,java,Java,我必须实现一个非常简单的二叉树。我只需要一个put和get方法。如果一个键已经在使用中,我必须只替换该值。这是我的代码,但我非常非常不确定这是否工作正常。。。你能确认这个密码能用吗?很抱歉我不知道如何调试这样的类…:/不,这不是家庭作业。只是一个学习java课程的模板…;) 添加此选项并测试: @Override public String toString() { if(this.left==null&&this.right != null){ ret

我必须实现一个非常简单的二叉树。我只需要一个
put
get
方法。如果一个键已经在使用中,我必须只替换该值。这是我的代码,但我非常非常不确定这是否工作正常。。。你能确认这个密码能用吗?很抱歉我不知道如何调试这样的类…:/不,这不是家庭作业。只是一个学习java课程的模板…;)

添加此选项并测试:

@Override
public String toString() {

    if(this.left==null&&this.right != null){
        return this.value.toString()+" " + this.right.toString();
    } 
    if(this.left!=null&&this.right == null){
        return this.value.toString()+" " + this.left.toString();
    } 

    if(this.left !=null && this.right != null)
    return this.value.toString()+" " + this.left.toString()
                +" " + this.right.toString();
    return this.value.toString();;
}
这是打印树中所有节点的预订单。如果正确创建树,它应该能够打印所有值

要按升序打印,请使用顺序树遍历:

@Override
public String toString() {

    if(this.left==null&&this.right != null){
        return this.value.toString()+" " + this.right.toString();
    } 
    if(this.left!=null&&this.right == null){
        return  this.left.toString() +" " + this.value.toString();
    } 

    if(this.left !=null && this.right != null)
    return this.left.toString()
                +" " +this.value.toString()+" "  + this.right.toString();
    return this.value.toString();
}

为什么不运行它呢?在main方法中添加一些if语句,以确保树中的各个点具有正确的键和值。SImple@TungD.Nguyen因为我不知道如何调试。。。要么我的
toString
不正确,要么我的类不正确。我建议您从学习如何使用JUnit之类的单元测试工具开始。然后,您可以构建一些测试来验证代码是否正常工作。这是一种比手动检查打印语句要好得多的技术。结果是:一、二、三、七、六、五、九谢谢我改变了我的主要方法。以2开头,然后再加上0。现在输出是错误的。。你知道为什么吗?我找不到一个错误“二零三新七六五九”是正确的:用于预订。没有错,谢谢!我刚刚为最终输出添加了我自己的toString。看起来还可以。:)
@Override
public String toString() {

    if(this.left==null&&this.right != null){
        return this.value.toString()+" " + this.right.toString();
    } 
    if(this.left!=null&&this.right == null){
        return this.value.toString()+" " + this.left.toString();
    } 

    if(this.left !=null && this.right != null)
    return this.value.toString()+" " + this.left.toString()
                +" " + this.right.toString();
    return this.value.toString();;
}
@Override
public String toString() {

    if(this.left==null&&this.right != null){
        return this.value.toString()+" " + this.right.toString();
    } 
    if(this.left!=null&&this.right == null){
        return  this.left.toString() +" " + this.value.toString();
    } 

    if(this.left !=null && this.right != null)
    return this.left.toString()
                +" " +this.value.toString()+" "  + this.right.toString();
    return this.value.toString();
}