すべての単語を文字列のトライに入れようとしています。単語はeow
、トライデータ構造内の特定の文字に対して真であるフィールドによって示されます。したがって、トライには、単語がなくなるよりも文字が含まれる可能性があります。 「abc」はトライに含まれていますが、「c」の eow フィールドが false であるため、「abc」は単語ではありません
これが私のデータ構造です
struct Trie {
bool eow; //when a Trie field isWord = true, hence there is a word
char letter;
Trie *letters[27];
};
基本的に、単語のスペースで区切られた1つの文字列ですべての単語を返そうとしています
string printAll( string word, Trie& data)
{
if (data.eow == 1)
return word + " ";
for (int i = 0; i < 26; i++) {
if (data.letters[i] != NULL)
printAll( word + data.letters[i]->letter, *(data.letters[i]));
}
return "";
}
私が欲しいものを出力していません、何か提案はありますか?