void LetterTree::insert(std::string word) { using KeyType = std::pair<char, LetterNode>; LetterNode* currentNode = this; LetterMap* nextmap = &following; for(char c : word) { if (!nextmap->count(c)) { auto ln = LetterNode(c, currentNode); nextmap->insert(KeyType(c, ln)); } currentNode = &nextmap->at(c); nextmap = ¤tNode->following; } nextmap->insert(KeyType('\0', EOW)); }
void setLetterValues(LetterMap &letterMap) { short values[] = { 1, 3, 3, 2, 1, 4, 2, 4, 2, 8, 5, 1, 3, 1, 1, 3, 10, 1, 1, 1, 1, 4, 4, 8, 4, 10 }; // values for(char letter = 'a'; letter <= 'z'; letter++) letterMap.insert(LetterMap::value_type(letter, values[letter - 'a'])); } // setLetterValues();