在TRIE实施中,什么是实施节点的有效方法?

时间:2018-12-08 17:59:54

标签: java dictionary data-structures trie

我正在使用TRIE数据结构来实现字典,对于实现TrieNode的子代时应该使用哪种数据类型我有些困惑

我应该使用长度为26的节点数组

class TrieNode 
{ 
    TrieNode[] children = new TrieNode[ALPHABET_SIZE]; 

    // isEndOfWord is true if the node represents 
    // end of a word 
    boolean isEndOfWord; 

    TrieNode(){ 
        isEndOfWord = false; 
        for (int i = 0; i < ALPHABET_SIZE; i++) 
            children[i] = null; 
    } 
};

或者我应该采用哈希图实施方式

    class TrieNode{
    char value;
    boolean isEnd;
    Map<Character,TrieNode> children;

    public TrieNode(char value) {
        this.value = value;
    }
}

哪一种效率更高,消耗的内存更少?

0 个答案:

没有答案