2011-01-28 7 views
4

이 간단한 트리의 이름을 찾고 있는데, 이것은 이진 검색 트리를 매우 간단하게 일반화 한 것입니다.이 트리의 이름은 무엇입니까?

설명입니다. 트리의 모든 노드는 고정 된 수의 최대 키 MI와 최소 수의 키 (단지 1)를 갖습니다. 키가 정렬됩니다. 모든 노드에는 자식에 대한 MI + 1 외부 링크가 있으며 b- 트리와 비슷합니다. 자식 노드는 b- 트리처럼 부모의 두 개의 가까운 키 간격의 키만 포함합니다.

삽입 및 삭제 작동 방식이 다릅니다.

삽입 :

루트부터 시작합니다.

확인중인 노드에 MI 키가 없기 때문에 공간이 충분하지 않으므로 키가 옳은 위치에 추가됩니다.

노드가 가득차면 체크인합니다. 이 범위의 하위 항목이 없으면 우리는 키만으로 항목을 만듭니다. 기타 등등.

DELETION : 나는 노드의 예 "ACE"를했다, 나는 "E"를 삭제해야하지만, "C"와 "E"사이의 간격에 아이가있는 경우

삭제에

, , 나는 아이의 가장 큰 요소를 얻고 그것을 "E"로 대체합니다 (요소를 제거하면 차례대로 다른 요소를 부모로부터 부모로 옮길 필요가 있기 때문에 여기에서 재귀해야 할 수도 있음). 이보다 조금 더 복잡하지만 일반적으로 요소를 자식에서 삭제 된 키를 소유 한 노드로 이동해야합니다.

이것은 매우 비공식적으로 지정되었지만 이진 트리의 일반적인 일반화 된 것으로 보이는 이름을 찾을 수 없음을 알고 있습니다.

+0

노드에 MI 키가있을 수 있지만 삽입시 "자식"이라고 말하면됩니다. 자녀가 중요한 정보로 선택되는 방법을 명확히하십시오. – marcog

+0

@margoc : 나는 현재 노드가 꽉 찼다면 우리가 이미 가지고있는 두 개의 키로 구분 된 범위의 링크 된 자식에게갑니다. 따라서 MI가 4이고 루트 노드 "A C M Z"에 있고 "E"를 추가해야하는 경우 A-C 범위에 연결된 하위 항목으로 이동하려고 시도합니다. 아무 것도 없다면 나는 그것을 창조한다. – antirez

답변

4

귀하의 알고리즘은 비 자기 균형 "다중 방식 트리"라고 생각합니다. Look here.

결과적으로 B- 트리는 하나의 자체 균형 조정 변형입니다. 전문 용어가 정확히 일치하지는 않습니다. Wikipedia가 동일한 이름을 사용한다는 감각은 다르기 때문에 (다중 항등과 동일), 위의 해석을 충분히 많은 곳에서 사용하여 보았습니다.

+1

고마워, 나는 이것이 내 질문에 완벽하게 대답한다고 생각한다! – antirez

0

아마도 k-ary tree입니다.

+0

확실히 K-ary 트리입니다. 그러나 이것이 일반적인 용어입니다. 문제는 제가 설명하는 삽입/삭제 알고리즘이 특수 트리로 취급되는지 이해하는 것입니다. – antirez

관련 문제