2014-10-23 8 views
0

b-tree에 관한 많은 기사를 찾았지만 아무도 도움이되지 못했습니다.파일에 B-Tree 저장하기

디스크에 B- 트리를 저장하고 싶지만 트리 개체를 직렬화하고 싶지 않습니다. 복원 할 수있는 순서대로 트리의 값만 저장하는 방법이 있다고 생각합니다. 다시 나무. 값은 다시 나무의 변화를 삽입 할 때

내가 예약 주문에서는 주문 (대칭), 우편 주문처럼, 어떤 순서로 저장에게 값을 시도했지만.

아래 이미지는 저장하고 싶은 b-tree의 예입니다.

B-tree example

이미지 http://slady.net/java/bt/view.php에서, B-트리 애니메이션 애플릿.

따라서 트리의 구조를 값으로 저장하는 방법이 있습니까?

+0

이것은 아주 오래되었지만 여기를 시도해 보시나요? https://github.com/jankotek/MapDB/tree/master/src/main/java/org/mapdb – shlomi33

+0

지금 보겠습니다. 감사합니다. –

답변

0

B- 트리가 전체적으로 직렬화되지는 않는다는 것이 맞습니다. 그것들은 메모리 내 데이터 구조로는 괜찮지 만, 메모리가 다를 수있는 디스크상의 데이터 구조로 유용합니다 (한 번에 하나의 노드 만 메모리에 보유 할 수 있습니다).

디스크의 B- 트리와 메모리에 캐시 된 노드의 서브 세트를 사용하는 Java 코드의 예는 JDBM 소스 코드를 참조하십시오. 시작할 위치는 https://github.com/jankotek/JDBM3/blob/master/src/main/java/org/apache/jdbm/BTreeNode.java#L831 일 수 있습니다.

+0

이 알고리즘은 복잡합니다. 아마도 대답은있을 수 있지만 보이지 않습니다. b- 트리 구조를 저장하는 기본 방법을 설명 할 수 있습니까? 나는 거의 lazying 노드를 얻을 필요가 없습니다, 나는 단지 파일을 저장하고 트리를 동일하게 복원하기를 원합니다. –