이진 트리와 각 사이의 변환

이진 트리로 트리

(1) 라인 플러스. 게다가 모든 형제 노드 사이의 연결.

선재 (2). 첫 번째 자식 노드 만의 연결을 떠나는 트리의 각 노드는, 그것은 다른 자식 노드 사이의 연결을 삭제합니다.

(3) 레벨 조정. 축으로 트리의 루트에, 회전 각도는 구조가 구조 그래서, 전체 트리를 시계 방향으로. (첫 번째 자식은 자식 노드를 남아있는 것을 참고, 아이들을 통해 형제 변환 오른쪽 자식 노드입니다)

                       

숲 이진 트리로 변환

(1) 각 이진 트리를 변환합니다.

제 이진 트리부터 이진 트리 상에 고정 (2)에 순차적으로 연결 라인 전에 이진 트리의 루트 노드로의 루트 노드의 우측 자식에 이진 트리.

 

이진 트리로 변환

그것은 역 과정의 이진 트리로 변환됩니다.

(1) 라인 플러스. 노드 X의 왼쪽 자식 노드가 존재하는 경우 오른쪽 자식 노드 오른쪽 자식 노드의 바로 자녀 오른쪽 자식 노드의 오른쪽 아동의 권리 아이 ...의 다음 왼쪽 아이 모두 X의 자식 노드로 . 노드 X 오른쪽 아이를 연결하는 라인 노드.

선재 (2). 오른쪽 자식 노드를 모두 연결하기 위해 원래 이진 트리 노드를 삭제합니다.

(3) 레벨 조정.

 

이진 트리의 숲으로 변환

이진 트리의 루트 노드가 바로 아이가 있다면, 그것은 그렇지 않으면 나무로 변환됩니다, 이진 트리 숲으로 변환 할 수 있습니다.

루트에서 시작 (1) 오른쪽의 자녀가있는 경우, 제거 우측 자식 노드와의 연결을했습니다. 이진 트리의 분리, 올바른 자녀가있는 경우 루트, 삭제 ... 접속 후 다시 확인합니다. 올바른 연결을 가진 모든 아이들의 루트까지 삭제됩니다.

분리 된 이진 트리를 그들 각각의 변환 (2).

 

추천

출처www.cnblogs.com/Virus-Faker/p/11850964.html