「基数ツリー」の全会一致の定義を見つけることは困難ですが、最も受け入れられている基数ツリーの定義は、圧縮されたプレフィックス ツリーであることを示しています。私が理解するのに苦労しているのは、この場合の「基数」という用語の意味です。圧縮されたプレフィックス ツリーがそのように命名され (つまり、基数ツリー)、圧縮されていないプレフィックス ツリーが基数ツリーと呼ばれないのはなぜですか?
1 に答える
ウィキペディアはこれに答えることができます、https://en.wikipedia.org/wiki/Radix :
数学的数値システムでは、基数または基数は、ゼロを含む一意の桁数であり、位置数値システムで数値を表すために使用されます。たとえば、10 進法 (今日使用されている最も一般的なシステム) の場合、基数は 10 です。これは、0 から 9 までの 10 桁を使用するためです。
およびツリーhttps://en.wikipedia.org/wiki/Radix_tree :
唯一の子である各ノードがその親とマージされる空間最適化トライを表すデータ構造。その結果、すべての内部ノードの子の数は、少なくとも基数ツリーの基数 r になります。ここで、r は正の整数で、x は 2 の累乗であり、x ≥ 1 です。
最後に辞書をチェックします。
1.基数(名詞)
他の言葉が生まれる原始的な言葉。
基数ツリーの基数は、ツリーの子の量 (または深さ) と「まばらさ」のバランス、または固有のサフィックスの数を決定します。
編集 - 精緻化
すべての内部ノードの子の数は少なくとも基数 r です
「あば、異常、にきび、ひどい」という言葉について考えてみましょう。通常のプレフィックス ツリー (またはトライ) では、すべての弧が単語に 1 文字追加されるため、次のようになります。
-a-b-a-
n-o-r-m-a-l-
y-s-m-a-l-
-c-n-e-
私の絵は少し誤解を招きやすいです - 文字は通常円弧上にあるので、'-' はノードで、文字はエッジです。多くの内部ノードには 1 つの子があることに注意してください。コンパクトな(そして明白な)形式は次のとおりです。
-a-b -a-
normal-
ysmal-
cne-
これで、3 つの子を持つ内部ノード (b の後ろ) ができました! 基数は 2 の正の累乗なので、この場合は 2 です。なぜ 3 と言わずに 2 なのですか?まず、ルートには 2 つの子があることに注意してください。さらに、単語を追加したいとします。オプション:
- 接頭辞を共有し
b
ます - まあ、4 は 2 より大きいです。 - の子のエッジを共有しています
b
- 「異常に」と言います。さて、挿入が機能する方法では、共有部分が分割され、次のようになります。
関連するブランチ:
-normal-ly-
-
現在、normal は内部ノードですが、2 つの子 (1 つは葉) があります。- もう 1 つのケースは、たとえばニキビの削除です。しかし今、compactness プロパティはb
、それが唯一の子であるため、後のノードをマージする必要があることを示しているため、ツリーは次のようになります。
木:
-ab-a
-normal-ly-
-
-ysmal
そのため、まだ children>2 を維持しています。
これが明確になることを願っています!