前缀树的JavaScript实现

来源:互联网 发布:淘宝神兽金刚玩具 编辑:程序博客网 时间:2024/06/01 10:33
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");//2console.log(tree.has("ban"));