0

新しいホーム プロジェクトの作業を開始しました。特定のファイル名にパスを付けてインデックスを作成する必要があります。プログラムは、ファイルの内容を処理する必要なく、ローカル ハードディスク上のファイルにインデックスを付けます (したがって、単純な実装であると想定/期待しています)。最初に、ユーザーはファイル拡張子のリストを挿入してインデックスを作成します (セットアップ時に)。次に、プログラムが実行され、ユーザーが入力した特定のファイルのパスを保持するデータ構造が作成されます。

データ構造からデータを取得すると、次のようになります。

HDD 上のファイルのパス = 関数 (ユーザーが入力したファイル名)

私はそれについてかなり長い間考え、ここにデータ構造のデザインを書きました。これが私の提案です (デザインの図):

  1. 拡張子をセルにマッピングするためのハッシュ関数を持つ配列を使用します (各セルは
    拡張子ファイルの最初の文字を表します)。

  2. 各セル内には、同じ文字で始まる拡張子のリストがあります。

  3. リスト内の各ノードには、ファイル名を検索するための赤黒のツリーがあり、ファイル名が見つかった後、プログラムはツリー
    ノードに格納されているファイルのパスを取得します。

ところで、私は通常、c (低レベル) または c++ でプログラミングします。

4

1 に答える 1

1

あなたはあまりにも精巧で複雑なスキームを作っていると思います。MyFileTree拡張機能に基づいて検索する場合は、string が拡張機能である場所を使用するだけで、すぐに使用できるO SortedDictionary<string, MyFileTree>(log n) 取得メカニズムが得られます。

于 2011-02-10T09:18:37.293 に答える