js二分查找树实现

Posted kbnet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js二分查找树实现相关的知识,希望对你有一定的参考价值。

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

 

以上是关于js二分查找树实现的主要内容,如果未能解决你的问题,请参考以下文章

浅析二分查找,二叉树,平衡二叉树,B树,B+树

二十 二分搜索树完整实现:查找删除操作

手把手教你用java实现二分查找树及其相关操作

[DS+Algo] 008 查找

数据结构的底层实现今天植树节,做个二分搜索树吧

为什么选择B+树作为索引结构?