我正在尋找一個數據結構,即基本上是一個地圖樹,其中每個節點的地圖包含一些新元素,以及其父節點中的元素地圖。通過這裏的地圖,我的意思是一個帶有鍵和值的編程地圖,如STL中的地圖或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 w^ith節點的所有條目? – phreeza 2010-11-25 20:30:25