Я шукаю структуру даних, це в основному дерево карт, де карта на кожному вузлі містить деякі нові елементи, а також елементи в карті його батьківського вузла. Під картою тут я маю на увазі карту програмування з ключами та значеннями, як карта у STL або диктант у python.
Наприклад, може бути кореневий вузол:
root = {'car':1, 'boat':2}
та 2 дітей, кожен з яких додає елемент до батьківської карти
child1 = {'car':1, 'boat':2, 'jet':35}
child2 = {'car':1, 'boat':2, 'scooter':-5}
Я хотів би, щоб це було максимально ефективним простором, тобто я не хочу зберігати повну копію отриманої карти на кожному вузлі, але в ідеалі пошук все одно буде O (лог N), N - загальна кількість елементи у вузлі, а не все дерево.
Я думав, можливо, є розумна хеш-функція, яку я міг би використовувати для цього, але нічого не міг придумати.
Наївний підхід зберігав би щойно додані записи у карті на кожному вузлі, а потім переміщав би дерево, якщо нічого не знайдено. Мені це не подобається, оскільки це залежить від глибини дерева.