Javascript 获取引用错误“;ReferenceError:insertLevelOrder未定义;关于类内定义的函数
我试图使用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
// 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)
{
如果(i tree.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);