В реализации TRIE, каков эффективный способ реализации узла? - PullRequest
0 голосов
/ 08 декабря 2018

Я использую структуру данных 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; 
    } 
};

или я должен пойти с Hash Map реализация

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

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

Какая из них более эффективна и будет потреблять меньше памяти?

...