我正在寻找一种数据结构,它基本上是一棵地图树,其中每个节点上的地图都包含一些新元素以及其父节点地图中的元素。这里的映射是指具有键和值的编程映射,例如STL中的映射或python中的dict。
例如,可能有一个根节点:
root = {'car':1, 'boat':2}
和2个子级,每个子级都向父级地图添加一个元素
child1 = {'car':1, 'boat':2, 'jet':35}
child2 = {'car':1, 'boat':2, 'scooter':-5}
我希望这是尽可能节省空间的,即我不想在每个节点上存储结果图的完整副本,但理想情况下,查找仍然是O(log N),N是总数节点上的元素,而不是整个树。
我当时在想也许有一个智能哈希函数可以用于此目的,但是什么也没想出来。
天真的方法是将新添加的条目存储在每个节点的映射中,然后在未找到任何内容的情况下向上移动树。我不喜欢这样,因为它取决于树的深度。