gpt4 book ai didi

java - 如何为 BinaryTree 类编写 left() 和 right() 方法

转载 作者:行者123 更新时间:2023-12-01 21:35:38 25 4
gpt4 key购买 nike

我目前正在学习数据结构和算法类(class)。上节课,我的教授在黑板上贴了一些代码来解释如何编写 size()height() ,和left()/right()教我们在测验中保持两种平衡的方法。

他在黑板上编写了您在下面看到的代码,但他提到,虽然他犯了错误,但现在要专注于逻辑,并且他必须运行一些测试才能理解他的错误。

public class BT<T> {
TreeNode<T> root;
BT<T> myTree;

//size
public int size() {
if(this.isEmpty())
return 0;
return (1 + this.left().size() + this.right().size());
}
//isEmpty()
public boolean isEmpty() {
return (root == null);
}
//left
public BT<T> left() {
return root.left;
}

public BT<T> right() {
return root.right;
}
}

整个周末,我试图自己解决这个问题,因为在教授的办公时间内,由于期中考试期间拜访他的学生数量较多,他无法编写代码。

如何修复这个方法?

编辑:

这是 TreeNode<T>

class TreeNode<T> {
T data;
TreeNode<T> left;
TreeNode<T> right;

}

它位于同一包内的另一个类中。

最佳答案

如果如您所说,TreeNode 类位于另一个类(内部类)内部,则如果没有外部类的实例,则无法访问内部类。

因此,如果您的 TreeNode 类是在类 A 中定义的,您需要将它们一起创建:

A.TreeNode node = new A.TreeNode()

而不是只在 BT 类中创建 TreeNode。

你可以看看explain the way to access inner class in java?我认为这解释了问题以及解决方案。

如果我对内部类的假设是错误的,请告诉我,我将调整或删除我的答案。

关于java - 如何为 BinaryTree<T> 类编写 left() 和 right() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58803444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com