首页 > 其他 > 详细

Trie

时间:2021-05-18 23:05:17      阅读:19      评论:0      收藏:0      [点我收藏+]
package jckeep.trie;

import java.util.*;


class TrieNode {
    public TrieNode[] children;
    public String word;

    public TrieNode() {
        children = new TrieNode[26];
    }
}


public class Trie {
    private TrieNode trie;

    public Trie() {
        trie = new TrieNode();
    }

    public void insert(String word) {
        TrieNode node = trie;
        for (int i = 0; i < word.length(); ++i) {
            char c = word.charAt(i);
            if (node.children[c - ‘a‘] == null) {
                node.children[c - ‘a‘] = new TrieNode();
            }
            node = node.children[c - ‘a‘];
        }
        node.word = word;
    }

    public boolean search(String word) {
        if (word == null || word.length() == 0)
            return true;
        TrieNode node = trie;
        for (int i = 0; i < word.length(); ++i) {
            char c = word.charAt(i);
            if (node.children[c - ‘a‘] == null)
                return false;
            node = node.children[c - ‘a‘];
        }
        return (word.equals(node.word) ? true : false);
    }

    public boolean searchPrefix(String prefix) {
        if (prefix == null || prefix.length() == 0)
                        return true;
                TrieNode node = trie;
                for (int i = 0; i < prefix.length(); ++i) {
                        char c = prefix.charAt(i);
                        if (node.children[c - ‘a‘] == null)
                                return false;
                        node = node.children[c - ‘a‘];
                }
        return true;
    }
}

 

Trie

原文:https://www.cnblogs.com/JCKeep/p/14782443.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!