当前位置: 移动技术网 > IT编程>开发语言>JavaScript > js二分查找树实现

js二分查找树实现

2019年01月09日  | 移动技术网IT编程  | 我要评论
    function binarytree() {
        var node = function(key) {
            this.key = key;
            this.left = null;
            this.right = null;
        }
        var root = null;
        var insertnode = function(node, newnode) {
            if (newnode.key < node.key){
                if(node.left === null) {
                    node.left = newnode;
                } else {
                    insertnode(node.left, newnode); 
                }

            } else {
                if (node.right === null) {
                    node.right = newnode;
                } else {
                    insertnode(node.right, newnode); 
                }
            }
        }
        this.insert = function(key) {
            var newnode = new node(key);
            if(root === null){
                root = newnode;
            } else {
                insertnode(root, newnode)
            }
        }
        this.inordertraversenode = function(node,callback){
            if(node !==null) {
                inordertraversenode(node.left,callback);
                callback(node.key);
                inordertraversenode(node.right,callback)
            }
        }
        this.inordertraverse = function(callback) {
            inordertraversenode(root,callback)
        } 
    }


    var nodes = [8,3,10,1,6,14,4,7,13];
    var binarytree = new binarytree();
    nodes.foreach(function(key){
        binarytree.insert(key);
    });
    var callback = function(key) {
        console.log(key)
    }

    binarytree.inordertraverse(callback);
    

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网