美文网首页
java 二叉树的创建和输出

java 二叉树的创建和输出

作者: 牛奶大泡芙 | 来源:发表于2018-11-16 14:18 被阅读0次

一、java方法


// 二叉树类
public class BinaryTree {
    private Node root;
    // 添加节点
    public void add(int data) {
        if(root == null) {
            root = new Node(data);
        }
        else {
            root.addNode(data);
        }
    }
    // 打印整个二叉树
    public void printTree() {
        root.printNode();
    }
    
    // 内部类 Node
    private class Node {
        private int data;
        private Node left;
        private Node right;
        public Node (data) {
            this.data = data;
        }
        public void addNode(int data) {
            if(this.data > data) {
                if(this.left == null) {
                    this.left = new Node(data);
                }
                else {
                    this.left.addNode(data);
                }

            }
            else {
                if(this.right == null) {
                    this.right = new Node(data);
                }
                else {
                    this.right.addNode(data);
                }
            }
        }
        // 中序遍历的方法,左,中,右
        public void printNode () {
            if(this.left != null) {
                this.left.printNode();
            }
            system.out.print(this.data + '->');
            if(this.right != null) {
                this.right.printNode();
            }
        }
    }
}

// 测试类
public class Demo {
    public static void main(String[] args) {
        BinaryTree bt = new BinaryTree();

        bt.add(8);
        bt.add(1);
        bt.add(4);
        bt.add(23);
        bt.add(3);
        bt.add(-3);

        bt.print();
    }
}

二、js方法

class Nod1 {
    constructor (data) {
        this.value = data;
        this.left = null;
        this.right = null;
    }
    addInNode (data) {
        if(this.value > data) {
            if(this.left == null) {
                this.left = new Nod1(data);
            }
            else {
                this.left.addInNode(data);
            }
        }
        else {
            if(this.right == null) {
                this.right = new Nod1(data);
            }
            else {
                this.right.addInNode(data);
            }
        }
    }
    printNode () {
        if(this.value != null) {
            console.log(this.value);
            this.left && this.left.printNode();
            this.right && this.right.printNode();
        }
    }
}

class BinaryTre1 {
    constructor () {
        this.root = null;
    }
    addInTree (value) {
        if(this.root == null) {
            this.root = new Nod1(value);
        }
        else {
            this.root.addInNode(value);
        }
    }
    printTree () {


        this.root.printNode();
    }
}
var n1 = new Nod1(3);
var tree = new BinaryTre1(n1);
tree.addInTree(4);
tree.addInTree(1);
tree.addInTree(0);
tree.printTree();

相关文章

网友评论

      本文标题:java 二叉树的创建和输出

      本文链接:https://www.haomeiwen.com/subject/ufrmfqtx.html