Szukam struktury danych, która jest w zasadzie drzewem map, w których mapa w każdym węźle zawiera nowe elementy, a także elementy w mapie jego węzła nadrzędnego. Przez mapę rozumiem tutaj mapę programowania z kluczami i wartościami, taką jak mapa w STL lub dict w python.
Na przykład może istnieć węzeł główny:
root = {'car':1, 'boat':2}
i 2 dzieci, z których każde dodaje element do mapy nadrzędnej
child1 = {'car':1, 'boat':2, 'jet':35}
child2 = {'car':1, 'boat':2, 'scooter':-5}
Chciałbym, aby było to jak najbardziej efektywne pod względem przestrzeni, tj. Nie chcę przechowywać pełnej kopii wynikowej mapy w każdym węźle, ale idealnie byłoby to wyszukiwanie O (log N), gdzie N jest całkowitą liczbą elementy w węźle, a nie całe drzewo.
Pomyślałem, że może jest do tego inteligentna funkcja skrótu, ale nic nie mogłem wymyślić.
Naiwnym podejściem byłoby przechowywanie nowo dodanych wpisów na mapie w każdym węźle, a następnie przejście w górę drzewa, jeśli nic nie zostanie znalezione. Nie podoba mi się to, ponieważ zależy to od głębokości drzewa.