Я ищу структуру данных, которая является в основном деревом карт, где карта на каждом узле содержит некоторые новые элементы, а также элементы в родительском узле карта. По карте здесь я имею в виду карту программирования с ключами и значениями, например, карту в STL или dict в python.Какая оптимальная структура данных для дерева карт
Например, там может быть корневой узел:
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 (log N), N - общее количество элементов в узле, а не все дерево.
Я думал, что есть умная хэш-функция, которую я мог бы использовать для этого, но ничего не мог придумать.
Наивный подход будет хранить вновь добавленные записи на карте на каждом узле, а затем перемещаться по дереву, если ничего не найдено. Мне это не нравится, потому что это зависит от глубины дерева.
Я не понимаю, не я все еще нуждаются в HashMap ш и все записи для узлов? – phreeza