トライの概念が理解できません。「トライ」ウィキペディアのエントリから、次の写真があります。
これが正しく表示されている場合、トライのすべてのリーフ ノードには単語全体が綴られており、すべての親ノードは最後のリーフ ノードまでの文字を保持しています。したがって、によって定義された DigitalTreeNode というクラスがある場合
public class DigitalTreeNode {
public boolean isAWord;
public String wordToHere; (compiles all the characters in a word together)
public Map<String, DTN> children;
}
トライで最も長い単語を返すメソッドを実装したい場合、各リーフ ノードで最も長い単語を見つけるだけでよいでしょうか? 次のような方法をどのように実装しますか。
public static String longestWord (DigitalTreeNode d);
最長の文字列変数を設定し、各ノードを再帰的に調べて、それが単語であるかどうか、それが単語であり、その長さが最長の変数よりも大きい場合は、 longest = newWordLength を確認する必要があると思います。しかし、マップの子がどのように収まるかはわかりません。上記の方法を使用して、トライで最も長い単語を見つけるにはどうすればよいでしょうか?