Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取引用错误“;ReferenceError:insertLevelOrder未定义;关于类内定义的函数_Javascript_Algorithm_Binary Tree - Fatal编程技术网

Javascript 获取引用错误“;ReferenceError:insertLevelOrder未定义;关于类内定义的函数

Javascript 获取引用错误“;ReferenceError:insertLevelOrder未定义;关于类内定义的函数,javascript,algorithm,binary-tree,Javascript,Algorithm,Binary Tree,我试图使用javaScript实现一个完整的二叉树,但得到了ReferenceError错误:insertLevelOrder未定义这里是我的代码: // given array in level order fashion class Node { constructor(data, left = null, right = null) { this.data = data; this.left = left; this.right

我试图使用javaScript实现一个完整的二叉树,但得到了ReferenceError错误:insertLevelOrder未定义这里是我的代码:


// given array in level order fashion 
class Node {
    constructor(data, left = null, right = null) {
        this.data = data;
        this.left = left;
        this.right = right;
    }
};

class Tree {
    constructor() {
        this.root = null;
    }

    // Function to insert nodes in level order 
    insertLevelOrder(arr, root, i) 
    { 
        // Base case for recursion 
        if (i < arr.length) { 
            var temp = new Node(arr[i]); 
            root = temp; 

            // insert left child 
            root.left = insertLevelOrder(arr, root.left, 2 * i + 1); 

            // insert right child 
            root.right = insertLevelOrder(arr, root.right, 2 * i + 2); 
        } 
        return root; 
    } 

    // Function to print tree nodes in InOrder fashion 
    inOrder(root) 
    { 
        if (root != null) { 
            inOrder(root.left); 
            console.log(root.data + " "); 
            inOrder(root.right); 
        } 
    } 

} 

var tree = new Tree();
var arr = new Array(1, 2, 3, 4, 5, 6, 6, 6, 6 );
tree.root = tree.insertLevelOrder(arr, tree.root, 0); 

//以级别顺序方式给定数组
类节点{
构造函数(数据,左=null,右=null){
这个数据=数据;
this.left=左;
这个。右=右;
}
};
类树{
构造函数(){
this.root=null;
}
//函数以按级别顺序插入节点
insertLevelOrder(arr,root,i)
{ 
//递归的基本情况
如果(i

我在最后添加了一些代码来测试该算法,我不确定哪里出了问题

因为您试图在其内部递归调用
insertLevelOrder
,您应该将其作为当前实例的方法调用(通过
this.insertLevelOrder
):


由于您试图在自身内部递归调用
insertLevelOrder
,因此应将其作为当前实例的方法调用(通过
this.insertLevelOrder
):


在类中,您必须使用
this
this.insertLevelOrder(…

我已经删除了代码中的注释,并在您必须添加的地方添加了注释。

类节点{
构造函数(数据,左=null,右=null){
这个数据=数据;
this.left=左;
这个。右=右;
}
};
类树{
构造函数(){
this.root=null;
}
insertLevelOrder(arr,root,i)
{ 
如果(itree.root=tree.insertLevelOrder(arr,tree.root,0);
在类内部,您必须使用
this
this.insertLevelOrder(…

我已经删除了代码中的注释,并在您必须添加的地方添加了注释。

类节点{
构造函数(数据,左=null,右=null){
这个数据=数据;
this.left=左;
这个。右=右;
}
};
类树{
构造函数(){
this.root=null;
}
insertLevelOrder(arr,root,i)
{ 
如果(i
root.left = this.insertLevelOrder(arr, root.left, 2 * i + 1); 
root.right = this.insertLevelOrder(arr, root.right, 2 * i + 2);