トライ木の高さを求めるアルゴリズムを書くのに苦労しています。どうやって始めればいいのか、どうすればできるのかわかりません。これが「初心者」の質問である場合は申し訳ありませんが、私は試行にかなり慣れていないため、これが私の割り当てに欠けている唯一の部分です。
とにかく、トライツリーの構造は次のとおりです。
typedef struct RegTrie * ImplTrie;
typedef struct RegTrie {
Boolean IsItAWord; /* true if it is a word, false if it is not a word */
ImplTrie children[ALPHABETsize];
} RegTrie;
基本的に、「a」が 1 つの子の場合、chidren[0] に Trie があり、「b」が子でない場合、children[1] は NULL になります。ご覧のとおり、文字はリンク インデックスによって暗黙的に定義されており、過去のノードの文字が現在のノードまでの単語を形成する場合、'Boolean IsItAWord' は true になります。
これで私に光を与えてもらえますか?私が知っている唯一のことは、高さは最長の単語の長さ + 1 で定義できるということです。しかし、それを行う方法がわかりません。私は本当に解決策が欲しいので、このトライの高さを見つける方法は大歓迎です。
ありがとうございました。