私はインタビューテストから以下の質問を受けます(短くて簡単です): ファイルシステムを構築する必要があります。 ファイルオブジェクトを作成する必要があります。 IDを持つディレクトリを作成しなければなりません。補助データを追加できます。 java.util.Collectionsを使用することはできません。自分ですべての作成を行う必要があります。 問題は、ディレクトリ階層の最適な実装を見つけることです。 私が実装する必要がある関数は次のとおりです。addDirectory(parentDirectoryId) removeDirectory(DirectoryId)、printAll() - フォルダとファイルの階層を論理的に表示します。ファイルシステムをシミュレートするための最適なアルゴリズムとデータ構造
私が考えていたのは、ルートディレクトリディレクトリとその下にファイルを置くことでした。 これは、各ディレクトリDに、直接のサブディレクトリであるすべてのディレクトリのリストが含まれるように実装されます。 と各ディレクトリには直接的および間接的なサブディレクトリのリストがあります。ディレクトリを削除したい場合は、そのサブディレクトリのリストを調べて存在するかどうかを確認します。ディレクトリIに達するまでツリーを続けます削除したい 問題は次のとおりです。 この実装を使用すると、IDのリストを再帰的に更新する必要があります。頭に痛みがあります。追加または削除するたびに、私はリストに戻って更新する必要があります。 別の問題は、実行時間が非効率的になる可能性があるということです。非常に広いツリーがあり、ツリーのすべてのディレクトリの葉にあるディレクトリを削除または追加する必要があるからです。それをするために木全体に行きなさい。
DirectoryFileシステムの実装を改善するために手伝ってください。 私は自分が望むようにそれを実装する自由を持っています。私はそうするのに本当に短い時間を持っています。 私が提案したツリー構造は単なるアイデアであり、私はちょっとそれに固執しています。
UMが、それが聞こえます。 –
nop。テストは今ではありません。本当に。 – mary
と私はインタビューで決して欺くことはありません。 – mary