ファイル名を検索してそのパスを取得するためのデータ構造

私は動的に、約10億の名前までファイルの名前を挿入します。また、次のクエリを実行するために、ファイルが格納されているパスも保存する必要があります。

  • パスを取得するために、ファイルの名前を検索します。
  • 部分文字列と一致するすべてのファイルの名前を検索します(例:検索* o
    *の場合、joel、hola、ola、oso、osea、algoを返します) aa *を検索すると、私はaaabを返します。もし私が*
    soを検索すれば、それはosoを返します)。
  • ファイルの名前を削除します。

だから、私は次のような方法で一種のデータ構造を作ろうとしています:

私は “hola”という単語を挿入すると、ノードに
“h”という文字を持つノードからエッジを作成するように、26ノード(英語のアルファベットのaz、私はスペースのためにイメージにすべてのノードを入れません)を得ましたこの数字は深さのレベルを表しているため、文字「o」とそのエッジにデータ1があります。さらに、
‘a’が格納されているノードでは、ファイルのパスを格納するためにマップ構造を使用しますが、これは、文字
‘a’が含まれているノードに多くのパスが格納されているためです。 。

それを言って、私はジョエル、ホラ、オラ、オッソ、オセア、アルゴ、aaabという言葉を挿入しました。

enter image description here

私はsama
lettres(例えばa、bなど)を持つノードをたくさん持っていないので、これを行っていますが、問題は多くのエッジとsctructureの必要があることです

formula

bytes of memory (I am programming in C++) where w is a string of
size formula.

ご覧のように、ファイル
“jola”(挿入されていない)の名前を検索すると、パスは返されず、そのようなファイルは保存されていないことがわかります。

これをどのように改善できますか?エッジの数を減らす方法はありますか?またはこれを行うためのより良い構造と方法が存在するか?私はどんな提案も聞くことができます。

ベストアンサー
申し訳ありませんが、適切な答えはありません

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です