gpt4 book ai didi

javascript - Trie 实现中出现错误(Javascript)

转载 作者:行者123 更新时间:2023-12-03 01:45:10 25 4
gpt4 key购买 nike

我正在实现 Trie 算法的 add 函数,但它给了我以下错误:

未捕获类型错误:节点不是构造函数

...在此代码行中:

node.children[char_pos]=new Array(string[0], new node());

请问,你能告诉我发生了什么事吗?

感谢任何帮助。

这是我的代码:

var node = function(){

this.children= new Array(26);
this.last_char=false;
};

function add(word, node){

char_pos=word.charCodeAt(0) - 'a'.charCodeAt(0);

if(word.length==1){

if(node.children[char_pos]==null){

node.children[char_pos]=word[0];
node.last_char=true;
return;

}else{
return;
};

}else{

if(node.children[char_pos]==null){
node.children[char_pos]=new Array(word[0], new node());
};
};

word=word.substring(1);
add(word, node.children[char_pos][1]);
};

最佳答案

首先你声明

var node // = ...

然后

function add(word, node){

我想你会用节点的一些实例来调用,一个节点,而不是你的节点构造函数

在您的函数添加中,标识符节点解析为您的参数“节点”,具有相同标识符的构造函数无法从这里。你会写 node = new node() 你会失去节点功能吗?

标准通过用第一个大写字母命名构造函数或类(如 Node)以及 Node、node 的实例来帮助您解决此问题,这样您就不会覆盖您的标识符。

事实上,您确实应该选择尚未使用的标识符,因为您将覆盖它们,并使后者不可用。

关于javascript - Trie 实现中出现错误(Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50671558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com