私はメモリ内のいくつか(数KB、多分1メガバイト最大)大きめの文字列を持っている、彼らは以下の例のような構造化テキスト含まれています。私は、ファイルからこれらの文字列を読み、「クエリ」にする必要があります構造化テキスト内の部分文字列にすばやくアクセスできるデータ構造ですか?
Def[prop=A, ... some more kv pairs]
SubDef[prop=B, ... some more kv pairs]
SubSubDef[prop=C, ... some more kv pairs]
... goes deeper ...
Def[prop=X, ... some more kv pairs]
SubDef[prop=Y, ... some more kv pairs]
SubSubDef[prop=Z, ... some more kv pairs]
... goes deeper ...
SubDef[prop=Y, ... some more kv pairs] <- yeah, SubDef can also be on level 1
SubSubDef[prop=Z, ... some more kv pairs]
をデータ用です。たとえば、クエリは次のようになります。Def[].SubDef[].prop[]
これは、の中にあるすべてSubDef
の中に私がすべてprop
を入れることを意味します。
私の考えは、私がファイル構造を読んだとき、私は何とか構造を示すキーワードを索引付けすることができました。同様に、すべてのDef
文字列の配列を保持することができます。すべてSubDef
とすべてSubSubDef
です。したがって、SubDef
プロパティを検索する必要がある場合は、文字列全体でこれらのキーワードのオフセットにジャンプできます。
一般的なデータ構造があるのでしょうか?基本的にグラフのようなものですか? SubDef
もレベル1にすることができるので、実際にはツリーではありません。
明確にするために、その文字列には多くのキーワードがありますが、私はそれらのサブセットのみを気にしています。
構造化文字列内のキーワードのオフセットを表す一般的なデータ構造はありますか?
を使用することができます照会するため、はい、私は同意する、それがツリーとして、それをモデル化するために理にかなっています。さらに、リスト内のツリーレベルを追跡するので、レベルNのすべてのノードにすばやくアクセスできます。お寄せいただきありがとうございます。 – Max