前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js实现trie树

js实现trie树

作者头像
theanarkh
发布2019-03-06 10:05:49
2.8K0
发布2019-03-06 10:05:49
举报
文章被收录于专栏:原创分享原创分享
function Node(options) {
    options = options || {};
    this.val = options.val;
    this.isCapital = null;
    this.position = options.position;
}

function position(str) {
    var code = str.charCodeAt(0);
    if (code >= 65 && code <= 97) {
        return {
            isCapital: false,
            position: code
        };
    } else if (code >= 97 && code <= 122) {
        return {
            isCapital: true,
            position: code
        };
    }
}
function makeTree(arr) {
    var i = 0;
    var j = 0;
    var root = new Node();
    var currentNode = root;
    while(i < arr.length) {
        var str = arr[i];
        while(j < str.length) {
            var info = position(str[j]);
            info.val = str[j];
            if (!currentNode[info.position]) {
                var node = new Node(info);
                currentNode[info.position] = node;
            }

            currentNode = currentNode[info.position];
            j++;
        }
        currentNode.isEnd= true;
        currentNode = root;
        i++;
        j = 0;
    }
    return root;
}

var str = ['hello', 'hel'];
function start() {
     root = makeTree(str);
}
start()
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程杂技 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档