ฉันกำลังมองหาโครงสร้างข้อมูลซึ่งโดยพื้นฐานแล้วเป็นแผนผังของแผนที่ที่แผนที่ในแต่ละโหนดมีองค์ประกอบใหม่ ๆ รวมถึงองค์ประกอบในแผนที่ของโหนดแม่ โดยแผนที่ที่นี่ฉันหมายถึงแผนที่การเขียนโปรแกรมที่มีคีย์และค่าเช่น map ใน STL หรือ dict ใน python
ตัวอย่างเช่นอาจมีโหนดรูท:
root = {'car':1, 'boat':2}
และเด็ก 2 คนแต่ละคนเพิ่มองค์ประกอบไปยังแผนที่หลัก
child1 = {'car':1, 'boat':2, 'jet':35}
child2 = {'car':1, 'boat':2, 'scooter':-5}
ฉันต้องการให้พื้นที่มีประสิทธิภาพเท่าที่จะเป็นไปได้เช่นฉันไม่ต้องการเก็บสำเนาของแผนที่ที่เกิดขึ้นในแต่ละโหนด แต่การค้นหาจะยังคงเป็น O (log N), N เป็นจำนวนทั้งหมดของ องค์ประกอบที่โหนดไม่ใช่ต้นไม้ทั้งหมด
ฉันคิดว่าอาจจะมีฟังก์ชั่นแฮชอัจฉริยะที่ฉันอาจใช้กับสิ่งนี้ แต่ไม่สามารถคิดอะไรได้เลย
วิธีการไร้เดียงสาจะเก็บรายการที่เพิ่มเข้ามาใหม่ในแผนที่ที่แต่ละโหนดแล้วเลื่อนขึ้นต้นไม้หากไม่พบสิ่งใด ฉันไม่ชอบสิ่งนี้เพราะมันขึ้นอยู่กับความลึกของต้นไม้