猿问

在Java中实现二叉树数据结构

我正在尝试在Java中实现二叉树数据结构。这是我的代码。我对Java很陌生,不太了解我的错误在哪里。谢谢你。我收到此错误消息:binTree.java:21:错误:预期使用类,接口或枚举


class Node {

int value;

Node left;

Node right;


Node(int value) {

    this.value = value;

    right = null;

    left = null;

}

}


public class BinTree {


Node root;


}

private Node addRecursive(Node current, int value) {

if (current == null) {

    return new Node(value);

}


if (value < current.value) {

    current.left = addRecursive(current.left, value);

} else if (value > current.value) {

    current.right = addRecursive(current.right, value);

} else {

    // value already exists

    return current;

}


return current;

}

public void add(int value) {

root = addRecursive(root, value);

}

System.out.println();

    System.out.println("testcase 1:");

    BinTree binTree2 = new BinTree();

    binTree2.insertNode(new Node(3));

    binTree2.insertNode(new Node(201));

    binTree2.insertNode(new Node(60));

    binTree2.insertNode(new Node(30));

    binTree2.insertNode(new Node(45));

    binTree2.treeWalk();



鸿蒙传说
浏览 160回答 2
2回答

阿晨1998

您在节点根字段之后的第21行使用了一个右括号,您也不应这样做。此外,您将需要一种主要方法或Junit tedt案例来启动测试(在底部,从System.out.println( ))

qq_笑_17

您的方法需要放置在BinTree类中,而您要执行的代码需要包装在这样的主函数中public class BinTree {&nbsp; &nbsp; Node root;&nbsp; &nbsp; private Node addRecursive(Node current, int value) {&nbsp; &nbsp; &nbsp; &nbsp; if (current == null) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return new Node(value);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; if (value < current.value) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; current.left = addRecursive(current.left, value);&nbsp; &nbsp; &nbsp; &nbsp; } else if (value > current.value) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; current.right = addRecursive(current.right, value);&nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; // value already exists&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return current;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; return current;&nbsp; &nbsp; }&nbsp; &nbsp; public void add(int value) {&nbsp; &nbsp; &nbsp; &nbsp; root = addRecursive(root, value);&nbsp; &nbsp; }&nbsp; &nbsp; public static void main(String []args){&nbsp; &nbsp; &nbsp; &nbsp; System.out.println();&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("testcase 1:");&nbsp; &nbsp; &nbsp; &nbsp; BinTree binTree2 = new BinTree();&nbsp; &nbsp; &nbsp; &nbsp; binTree2.insertNode(new Node(3));&nbsp; &nbsp; &nbsp; &nbsp; binTree2.insertNode(new Node(201));&nbsp; &nbsp; &nbsp; &nbsp; binTree2.insertNode(new Node(60));&nbsp; &nbsp; &nbsp; &nbsp; binTree2.insertNode(new Node(30));&nbsp; &nbsp; &nbsp; &nbsp; binTree2.insertNode(new Node(45));&nbsp; &nbsp; &nbsp; &nbsp; binTree2.treeWalk();&nbsp; &nbsp; }}似乎您缺少一些方法,例如insertNode和treeWalk,但在实现这些方法后应该将其编译。
随时随地看视频慕课网APP

相关分类

Java
我要回答