문제

treap 예

트레시 데이터 구조를 연구하고 있습니다.노드를 삽입 할 때 Treap은 노드의 우선 순위를 역으로 생성합니다.그러나 69 노드가 생성 된 우선 순위가 13 인 경우에는?

부모의 우선 순위는 자녀의 우선 순위보다 높아야합니다.Treap의 이진 트리 속성은 힙 속성과 충돌합니까?

나는 알고 싶다.고마워.

도움이 되었습니까?

해결책

69 노드없이 사진에서 사진을 찍고 (69, 13) 노드를 추가하십시오. 1. split 기존의 트레리 2 reaps l와 r 키 69 (여기서 모든 오래된 treap가 l)
2. 생성


3. merge m을 가진 m, 그 다음 r
이 경우 노드 (69, 13)가 새로운 루트가되고, 오래된 트리가 왼쪽 자식이 될 것입니다.

다른 팁

노드 69가 우선 순위 13을 가졌으면 트리의 루트와 노드 31은 왼쪽 자식이 될 것입니다.노드 (31)의 자손은 노드 69의 물론을 제외하고 다이어그램에서와 마찬가지로

항상 힙과 바이너리 검색 속성을 모두 존중할 수 있도록 트레시를 정렬 할 수 있습니다.사실, 동등한 값이나 동등한 우선 순위가없는 경우, 하나의 가능한 배열 만 있습니다.

우선 순위의 무작위적 지정은 Treap이 합리적으로 균형을 이룰 가능성이 큽니다.그것은 완벽하게 균형을 이루지 않을 수도 있지만, 긍정적 인 측면에서 Treap는 빠르고 복잡하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top