插入二叉树的实现

数据结构 - 插入二叉树的实现

<!doctype html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>插入二叉树</title>
</head>
<body>

<script>
    function BinaryTree(){
      
      

        var Node = function(key){
      
        // 2
            this.key = key;
            this.left = null;
            this.right = null;
        }

        var root = null;

        /*
            1. 如果newNode < node 
                1.1 如果node.left为空,newNode赋给node.left
                1.2 否则再次比较newNode < node.left 
         */ 
        var insertNode = function(node, newNode){
      
         // 3

            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){
      
          // 1
            // 实例化node节点
            var newNode = new Node(key);
            // 根节点为空,便将newNode赋给root节点
            if (root === null) {

                root = newNode;
            } else {
            // 根节点存在,插入新节点  
                insertNode(root, newNode);
            };
        }
    }

    var nodes = [8, 3, 10, 1, 6, 14, 4, 7, 13];
    var binaryTree = new BinaryTree();

    // 将数组中的每个元素插入到二叉树中
    nodes.forEach(function(key){
      
      
        binaryTree.insert(key);
    })

</script>

</body>
</html>

猜你喜欢

转载自blog.csdn.net/dgwxligg/article/details/81222228
今日推荐