私はデータ構造を探しています。基本的にマップのツリーです。各ノードのマップには新しい要素がいくつか含まれています。地図。ここの地図では、STLの地図やPythonのdictのようなキーと値のプログラミングマップを意味します。マップのツリーの最適なデータ構造
root = {'car':1, 'boat':2}
と2人の子供は、それぞれが
child1 = {'car':1, 'boat':2, 'jet':35}
child2 = {'car':1, 'boat':2, 'scooter':-5}
私の検索は、その後のノード上で実行される親マップに要素を追加:
は例えば、ルートノードがあるかもしれません。たとえばchild1 ['jet']は35を返しますが、root ['jet']は見つからないというエラーを返します。
これは、できるだけスペース効率が良い、つまり、結果のマップの完全なコピーを各ノードに保存するのではなく、理想的にはO(ログN)ツリー全体ではなくノードでの要素の合計数。
おそらく私はこれに使うスマートハッシュ関数があると思っていましたが、何も思い付きませんでした。
単純なアプローチは、新しく追加されたエントリを各ノードのマップに格納し、何も見つからなければツリーを上に移動することです。私は木の深さに依存するので、これは好きではありません。
に拡張することができ、私はまだハッシュマップワットを必要としませんiノードのすべてのエントリ? – phreeza