方法insert报错

来源:1-4 二叉树创建的代码实现

极简小白

2017-09-10 18:12

你们这个代码有没有自己测试过?我怎么测试报错,说insert方法不存在

写回答 关注

3回答

  • 慕姐8792436
    2017-12-23 22:58:56

    this.insert这个接口应该是属于BinaryTree这个方法内的,且在判断节点有孩子的时候,递归调用时,传的是下一节点,而不是该节点。

  • 极简小白
    2017-11-13 16:26:45

      var root = null;


        function BinaryTree() {

            var Node = function(key) {

                this.key = key;

                this.left = null;

                this.right = null;

            }

        }

        var insertNode = function(node, newNode) {

            if (newNode.key < node.key) {

                if (node.left === null) {

                    node.left = newNode

                } else {

                    insertNode(node, newNode)

                }

            } else {

                if (node.right === null) {

                    node.right = newNode

                } else {

                    insertNode(node, newNode)

                }

            }

        }

        this.insert = function(key) {

            var newNode = new Node(key);

            if (root === null) {

                root = newNode

            } else {

                insertNode(node, newNode)

            }

        }

        var nodes = [8, 3, 10, 1, 6, 14, 4, 7, 13];

        var binaryTree = new BinaryTree();

        nodes.forEach(function(key) {

            binaryTree.insert(key);

       })

    //报错....

  • 一张白纸_
    2017-09-11 14:55:43

        var binaryTree = new BinaryTree();
             nodes.forEach(function(key) {
                 binaryTree.insert(key);
             })



    即可

Javascript实现二叉树算法

感受JS与数据结构的魅力。

46934 学习 · 97 问题

查看课程

相似问题