JAVA:二叉树

5

我正在尝试练习制作二叉树,以便我可以对它们进行不同的操作。

import java.util.*;
import java.lang.*;


public class Main {

public static void main(String[] args) {

}
}

//Building Binary Trees
class bTree {

static class Node { //remember to initilize a root

    String value;
    Node left, right;

    Node(String value, Node left, Node right) {
        this.value = value;
        this.left = left;
        this.right = right;
    }
    Node(String value) //THIS IS A SIBLING CONSTRUCTOR
    {
        this(value, null, null);
    }

    Node root = new Node("ROOT");
    Node lefty = new Node("LEFT0");
    Node righty = new Node("RIGHT0");
    root.left = lefty;
    root.right = righty;
}
Node root = null;
}

我为什么会收到错误信息:“在 root.left 和 root.right 赋值处需要标识符”?
谢谢!
1个回答

3
赋值语句
root.left = lefty;
root.right = righty;

不允许在类级别上使用static关键字。您可以通过更改此行来实现所需的效果。

Node root = new Node("ROOT");

转换为这个

Node root = new Node("ROOT", lefty, righty);

这里涉及到使用你的三个参数构造函数的优势。

然而,你可能需要重新考虑 rootleftyrighty 的位置。它们很可能是在 bTree 类中被设计的。此外,有一个约定俗成的规则,鼓励将类名命名为每个单词首字母大写,例如 BinaryTree


1
不错的调试。因为回答更快而加1分。 - Juvanis
那我就不明白了。我怎么能在整个程序中更改节点的左右属性呢??编辑:没事,我懂了! - Samuel French

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接