为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

鸿蒙传说 2021-05-14 19:10:35
我正在尝试在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();
查看完整描述

2 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

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


查看完整回答
反对 回复 2021-05-19
?
qq_笑_17

TA贡献1818条经验 获得超7个赞

您的方法需要放置在BinTree类中,而您要执行的代码需要包装在这样的主函数中


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);

    }


    public static void main(String []args){

        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();

    }


}

似乎您缺少一些方法,例如insertNode和treeWalk,但在实现这些方法后应该将其编译。


查看完整回答
反对 回复 2021-05-19
  • 2 回答
  • 0 关注
  • 159 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信