데이터 구조는 기본적으로지도의 트리입니다. 각 노드의지도에는 부모 요소의 요소가 포함되어 있습니다. 지도. 여기에서지도는 키와 값을 가진 프로그래밍 맵을 의미합니다 (STL의지도 또는 Python의 dict).지도의 트리에 대한 최적의 데이터 구조는 무엇입니까
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 (로그 N) 일 것입니다. N은 존재합니다. 노드에서의 전체 요소 수이며 전체 트리는 아닙니다.
아마도 내가 사용할 수있는 스마트 해시 함수가 있다고 생각했지만 아무 것도 생각할 수 없었습니다.
순진한 방법은 새로 추가 된 항목을 각 노드의 맵에 저장 한 다음 아무것도 발견되지 않으면 트리 위로 이동하는 것입니다. 나는 그것이 나무 깊이에 달려 있기 때문에 이것을 좋아하지 않는다.
로 확장 할 수 있습니다, 난 여전히 해시 맵 w를 필요로하지 것이다 노드에 대한 모든 항목이 있습니까? – phreeza