我有点麻烦:我构建了一个二叉树类,其中包含一些对于此任务而言并不有趣的函数。每个节点都存储一个左右子节点和一个父节点。每个节点都有一个键值,可以看作是一个标签。我创建了 3 个类:
Tree.java 是一个节点的类。
BinaryTree.java 包含一些与整个树相关的方法,例如最小值/最大值。
Main.java 测试 Tree 的特性并包含 main 方法。
我的问题: 我想用一个方法编写一个功能接口,该方法将节点作为参数并输出一个布尔值。这可用于传入根节点并递归检查树中的每个节点是否大于或小于一个值。但是,我对功能接口完全陌生,我无法真正掌握功能背后的逻辑。这是我到目前为止得到的:
@FunctionalInterface
public interface NodeOperation {
public abstract boolean forAll(Tree node);
}
NodeOperation overTwenty = (node) -> node.getValue() < 20;
当我尝试使用 lambda 表示法时,当我想打印 overTwenty 时它不会返回布尔值。有人可以帮我实现功能接口并解释我如何访问布尔变量,以便我可以开始考虑如何为每个节点递归地执行此操作。
如果您对二叉树不太了解,建议您在 Wikipedia 上查找。就我而言,我制作了一个 BST(二叉搜索树),这意味着它的结构基于右侧的较大值和左侧的较小值。如果您需要我的代码的某些特定部分,只需提出建议,我将在此处发布:)
HUWWW
MMTTMM
相关分类