跳到主要内容

编写Java代码实现二叉树的构建和遍历 ?

参考答案:

当然,我可以为你编写一个简单的Java代码来实现二叉树的构建和遍历。下面是一个示例:

首先,我们定义一个二叉树节点类(Node):

public class Node {
    int data;
    Node left;
    Node right;

    public Node(int data) {
        this.data = data;
        this.left = null;
        this.right = null;
    }
}

接下来,我们定义一个二叉树类(BinaryTree),其中包含构建和遍历方法:

public class BinaryTree {
    Node root;

    // 构建二叉树
    public void insert(int data) {
        root = insertRecursive(root, data);
    }

    private Node insertRecursive(Node current, int data) {
        if (current == null) {
            return new Node(data);
        }

        if (data < current.data) {
            current.left = insertRecursive(current.left, data);
        } else {
            current.right = insertRecursive(current.right, data);
        }

        return current;
    }

    // 前序遍历
    public void preOrderTraversal(Node node) {
        if (node == null) {
            return;
        }

        System.out.print(node.data + " ");
        preOrderTraversal(node.left);
        preOrderTraversal(node.right);
    }

    // 中序遍历
    public void inOrderTraversal(Node node) {
        if (node == null) {
            return;
        }

        inOrderTraversal(node.left);
        System.out.print(node.data + " ");
        inOrderTraversal(node.right);
    }

    // 后序遍历
    public void postOrderTraversal(Node node) {
        if (node == null) {
            return;
        }

        postOrderTraversal(node.left);
        postOrderTraversal(node.right);
        System.out.print(node.data + " ");
    }
}

最后,我们在主函数(main)中创建二叉树对象,并插入一些数据,然后执行遍历:

public class Main {
    public static void main(String[] args) {
        BinaryTree tree = new BinaryTree();

        // 插入数据
        tree.insert(10);
        tree.insert(5);
        tree.insert(15);
        tree.insert(3);
        tree.insert(7);
        tree.insert(13);
        tree.insert(17);

        System.out.println("前序遍历:");
        tree.preOrderTraversal(tree.root);
        System.out.println();

        System.out.println("中序遍历:");
        tree.inOrderTraversal(tree.root);
        System.out.println();

        System.out.println("后序遍历:");
        tree.postOrderTraversal(tree.root);
        System.out.println();
    }
}

这段代码实现了一个简单的二叉树结构,包括插入数据(构建二叉树)和前序、中序、后序遍历。你可以根据需要扩展和修改这个示例。