C では、trie はツリーのコレクションを格納するために使用される高レベルのデータ構造です。トライという言葉は検索という言葉に由来しており、番号ツリーまたは接頭辞ツリーと呼ばれます。
文字列のリストが与えられた場合に考えられるすべての結合の例を見てみましょう。
入力文字列を {"tutor", "true", "tuo"}
として定義します。異なる文字列が 1 つの文字列に連結されていることがわかります。したがって、ここの t と u は、すべての可能な文字列を接続する文字リストです。
この記事では、trie データ構造を使用して、文字列のリスト内のすべての可能な接続を解決します。
###文法### リーリー-このキーワードは、構造データ型を表すために使用されます。
- 構造に任意の名前を指定します。
リーリー
を指す変数の名前です。 alphabet は、文字の合計値を整数として設定するマクロです。 ###アルゴリズム###
2 つのマクロ
'alphabet'を定義しています。これらは、アルファベットの合計文字数と文字の最大値を定義します。
'tree node'へのポインタを定義しています。 bool データ型を使用して変数 'end_word' を定義します。これは文字列の終了文字として使用されます。 ポインタを使用して、トライによって構築されたツリーを表す新しいノードに接続し、
'buildNode'文字列を挿入するには、
'ins_recursive_of_string'関数
ins()のラッパー関数としてコード内で定義されています。 tree_trie* itm (tree_trie オブジェクト) と string str (挿入される文字列) の 2 つのパラメーターを受け入れます。現在のノード、挿入される文字列、開始インデックス 0 を使用して再帰関数を呼び出します。 次に、
LeafNode()Function
display_joint()(現在処理中のノード)、 char str[] (ルート ノードから現在のノードまで形成されたパス文字列を格納するために使用される文字配列 str)、および int レベル (現在のノードの深さを表す整数レベル)。 このコードは、
display_joint()関数を定義します。これは、tree_trie オブジェクトをパラメータとして受け取り、ルート ノード、空の文字配列、および開始レベル 0 をパラメータとして使用して display_joint() 関数を呼び出します。 このコードは、新しい
tree_trie関数を呼び出して、各文字列をトライに挿入します。 最後に、出力の開始を示すメッセージを出力し、
displayJ()###例### このプログラムでは、指定された文字列リストから構築されたトライの可能な結合点をすべて出力します。
リーリー ###出力### リーリー ###結論は###以上が指定された文字列リストから構築されたトライの可能なノードをすべて出力します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。