您的位置:首页 > Web前端 > JavaScript

前缀树的JavaScript实现

2017-05-20 13:44 148 查看
function Trie() {
var obj = {};

return {
add : function(str) {
var parent = obj;
for (var i = 0; i < str.length; i++) {
var chr = str.charAt(i);
if (parent.hasOwnProperty(chr)) {
parent[chr].appearCount++;
} else {
parent[chr] = {
value : chr,
appearCount : 1
};
}
parent = parent[chr];
}
},
has : function(prefix) {
var parent = obj;
for (var i = 0; i < prefix.length; i++) {
var chr = prefix.charAt(i);
if (!parent.hasOwnProperty(chr)) {
return 0;
}
parent = parent[chr];
}
return parent.appearCount;
}
};
}

var tree = new Trie();
tree.add("banana");
tree.add("band");
tree.add("bee");
tree.add("absolute");
tree.add("acm");
//2
console.log(tree.has("ban"));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息