我用Java写了一个简单的二叉树算法

二叉树是一种常见的数据结构,它是由节点和连接节点的边组成的。每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树算法包括遍历、查找、插入、删除等操作。

class Node {
    int data;
    Node left, right;

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

class BinaryTree {
    Node root;

    void printPostorder(Node node) {
        if (node == null)
            return;

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

    void printInorder(Node node) {
        if (node == null)
            return;

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

    void printPreorder(Node node) {
        if (node == null)
            return;

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

    void printPostorder() {
        printPostorder(root);
    }

    void printInorder() {
        printInorder(root);
    }

    void printPreorder() {
        printPreorder(root);
    }

    public static void main(String[] args) {
        BinaryTree tree = new BinaryTree();
        tree.root = new Node(1);
        tree.root.left = new Node(2);
        tree.root.right = new Node(3);
        tree.root.left.left = new Node(4);
        tree.root.left.right = new Node(5);

        System.out.println("Preorder traversal of binary tree is:");
        tree.printPreorder();

        System.out.println("\nInorder traversal of binary tree is:");
        tree.printInorder();

        System.out.println("\nPostorder traversal of binary tree is:");
        tree.printPostorder();
    }
}

这个案例中,我们定义了一个Node类表示二叉树的节点,包含一个整型数据和左右子节点。BinaryTree类包含了打印前序遍历、中序遍历和后序遍历的方法。在main方法中,我们创建了一个二叉树实例,并调用相应的方法进行遍历。

你可能感兴趣的:(java服务端,java,算法,数据结构)