問題をモデル化するためのツリーデータ構造について読んでいます。ファイルシステムのフォルダ/ファイル表現に非常によく似たデータのメモリ表現を構築する必要があります(ディスクに保存されている実際のファイルではなく、エクスプローラのような構造を意味します)。ツリーの深さは最大10です。中間ノードには中程度の数の子(たとえば10)しかありませんが、数千のリーフノードが存在する可能性があります。[つまり、フォルダー内の数千のファイルとファイルがリーフノードです]
いくつかの考え
- 1つのノードには最大で2つの子しか持たないため、バイナリツリーは機能しません。(3つのサブフォルダーを持つことができるとしましょう)
- 私のデータは注文できるので、非常に一般的なツリーの実装は非効率的かもしれません。左の兄弟のように、右の兄弟よりも小さい/小さいです。これにより、効率的なトラバーサルが可能になることを願っています。
- Bツリーは非常に近いように聞こえますが、バランス要件を主張しています。私の場合、深さは10を超えることはありませんが、必ずしもその深さのすべてのブランチである必要はありません(たとえば、c:/ windows、C:/MyDoc../A/B/C)
あなたの経験を手伝ってください。ツリーまたは適切なデータ構造をカスタムで利用できるようにする必要があります(プログラミング言語に固有のものではありません)。