Menu
Coddy logo textTech

TrieNode クラス

Coddyの「トライ木 - データ構造シリーズ #8」コースのレッスン 3/14。

トライ(trie)の各ノードは、2つの情報を保持する1つの小さなオブジェクトです。それは、そこからぶら下がっているchildren(文字から次のノードへのマップ)と、ルートからこのノードまでのパスが挿入された完全な単語を綴っているかどうかを示すフラグisEndOfWordです。

これがクラスのすべてです。値もキーもありません。ツリー内でのノードの位置が、その意味そのものです。"cat"を挿入すると、ルートからcatというラベルの付いたエッジのパスが、isEndOfWord = trueを設定するノードに到達します。

まずはこのTrieNodeクラスを作成することから始めましょう。次のレッスンのTrieクラスでこれを使用します。

challenge icon

チャレンジ

簡単

引数を取らないコンストラクタを持つ TrieNode クラスを作成してください。

次の2つのフィールドを初期化します:

  • children空のマップ(または、使用する言語における文字からノードへのマップに相当するもの)に設定します。
  • isEndOfWordfalse に設定します。

自分で試してみよう

#include <stdio.h>
#include "trienode.h"

int main() {
    TrieNode* n = TrieNode_new();
    printf("%s %s\n",
           TrieNode_childrenCount(n) == 0 ? "true" : "false",
           n->isEndOfWord ? "true" : "false");
    return 0;
}

トライ木 - データ構造シリーズ #8のすべてのレッスン