0
点赞
收藏
分享

微信扫一扫

用java实现前缀树


 这里是用26个字母为搜索结构的,后期可以改为用Map结构的,这样的话适用性更高

/**
 * 前缀树类
 */
static class TreeNode {
    /**
     * pass=1 我和我下面有1个单词
     */
    public int pass;
    /**
     * end=1 1代表结束了
     */
    public int end;
    public TreeNode[] nexts;

    public TreeNode() {
        pass = 0;
        end = 0;
        nexts = new TreeNode[26];//26个字母
    }
}

/**
 * 插入一个单词
 */
private static void insert(TreeNode root, String product_) {
    char[] product = product_.toCharArray();
    TreeNode node = root;
    for (int i = 0; i < product.length; i++) {
        node.pass++;
        int index = product[i] - 'a';
        if (node.nexts[index] == null) {
            node.nexts[index] = new TreeNode();
        }
        node = node.nexts[index];
    }
    node.pass++;
    node.end++;
}

用java实现前缀树_前缀树_02



举报

相关推荐

0 条评论