Saya mencari struktur data, yang pada dasarnya adalah pohon peta, di mana peta di setiap node berisi beberapa elemen baru, serta elemen-elemen di peta node induknya. Dengan peta di sini yang saya maksud adalah peta pemrograman dengan kunci dan nilai, seperti peta di STL atau dict dengan python.
Misalnya, mungkin ada simpul root:
root = {'car':1, 'boat':2}
dan 2 anak, masing-masing menambahkan elemen ke peta induk
child1 = {'car':1, 'boat':2, 'jet':35}
child2 = {'car':1, 'boat':2, 'scooter':-5}
Saya ingin ini menjadi ruang seefisien mungkin, yaitu saya tidak ingin menyimpan salinan lengkap dari peta yang dihasilkan pada setiap node, tetapi idealnya pencarian masih O (log N), N menjadi jumlah total elemen pada simpul, bukan seluruh pohon.
Saya berpikir mungkin ada fungsi hash cerdas yang mungkin saya gunakan untuk ini, tetapi tidak bisa menghasilkan apa-apa.
Pendekatan naif akan menyimpan entri yang baru ditambahkan di peta di setiap node dan kemudian naik pohon jika tidak ada yang ditemukan. Saya tidak suka ini karena itu tergantung pada kedalaman pohon.