삽입 및 삭제 노드는 레드 - 블랙 트리를 처리

레드 - 블랙 트리 삽입 공정, 다음 사항을 사실을 고려해야합니다 :

1) 삽입 위치 : 외부 또는 삽입 안쪽. 삽입 위치는 하나의 회전은 다음과 같은 분석을 참조하기 위해 특별히 새로운 나무 레드 - 블랙 트리 규칙을 준수하기에 충분 여부에 의해 영향을 받는다.

2) 컬러 삼촌 노드 : 컬러 삼촌 노드는 빨간색이나 검은 색입니다. 때 붉은 색 변환 프로세스만큼 할 수있다, 당신은 검은 색을 회전해야합니다.

3) 색상 증조부 노드 : 증조부 색상은 빨간색이나 검은 점이다. 증조부가 빨간색 인 경우 삼촌 노드가 빨간색, 우리는 색상 처리를 변경, 새로운 모순은 특히 다음과 같은 분석을보고, 노드와 노드 색상 변경의 증조부 사이에 나타났다.

사례 1 : 삼촌 노드는 블랙이며, 외부 삽입

나 삽입 위치의 영향에 대해 이야기 해 보자 :

외부 삽입하면, 일례로서도 :

첫째, 우리는 그것을 할 수있는 직접 P에 대한 간단한 포인트 블랙 켜지는지, P와 N 색상의 충돌이 빨간색이 있음을하지 않는 생각?

N 삽입되지 않기 때문에 RBTree 균형 전에 생각은 P와 U 하위 하위 트리 블랙 트리 노드가 얼룩에 직접 N과 P와 P의 문제를 해결하기 위해 지금 같은 색이어야한다는 것을 의미한다, 잘못 검정 검정 노드 P 새로운 서브 트리에 해당, 손상 블랙 노드 규칙 동일한 경로 그래서 이것은 가능하지 않다.

, P와 N이 부착되어 우리가 먼저 다른 방법을 생각해 보자 우리의 목표는 그들없이 색상의 규칙을 다른 사람을 파괴하는 것입니다, 직접 색상은 쓸모없는 것으로 판명, 우리의 아이디어를 변경하는 것이있다 노드가 P 하위 트리에 P를하지 않은 경우, 모양, 즉 말을하는 것입니다 그를 P 변색의 경우의 수준을 올릴 수 있도록 , 그래서 매우 원래 P 덜 검은 색 노드의 수는 여전히 동일 P는 빨간색이기 때문에 (, 모바일 노드)를 검은 원 P 서브 트리의 수를 변경하지 않는다.

따라서 회동 조작의 AVL 트리의 서브 트리를 왼쪽 3 개 서브 트리가 P는 이제 높이 상승되는 것으로되고, 인용 G, G 우회전 따를 것이다. 원래의 아이디어에 따라, P와 N 사이, P의 색상을 변경하려면 지금 아무 문제가 없지만, G 오른쪽 서브 트리 감소하기 때문에, 검은 색 노드의 권리 자녀 수를 증가하지만, 좋은 거래, 우리는 단지를 G 라인에 빨간색으로 바뀝니다.

 

사례 1 : 삼촌 노드는 검은 색이며, 내부에 삽입

우리는 삽입 내부의 영향을 고려 :

내부 삽입, 예로서, 도면과 같은 경우 :

위에서 말했듯이 직접 색상 변경이 가능하지 않고, 외부 삽입의 예를 수행하는 경우, 변경 색상에서 P의 높이를 증가 시킨다는?

인한 삽입 위치 변화에 가능하지 않다. 위의에 따라서 과거, 우리는 P 노드가 빨간색이기 때문에 회전 우측 하위 트리 후 P G는, 위의 왼쪽 서브 트리에 통합 될 것으로보고, 그래서 오른쪽 서브 트리의 루트는 검은 색이어야합니다 상관없이 색상 G는 발생하지 않습니다 빨간색입니다.

그리고 이제 다음, 새로 삽입 위치의 내측에서, 노드 (삽입 노드 블랙, 경우 노드, 노드 블랙 규칙 동일한 수의 파괴를 추가하는 것과 동등하다) 삽입 적색되어야 본 통합 될 수있다 G, 제조업체와 후 N, G와 적색 나타나 N G에 대하여 내측에 따라서 만 N 여전히 처리하고, 좌측 및 우측 서브 트리의 서브 트리들 사이에서 점프하는 경우, 삽입 당신은 정말 레드 - 블랙 트리의 균형을 수 없습니다.

그래서 우리는 단순히 하나의 회전은 문제를 해결하기 위해 수는 없지만, 우리는 발견 P는 L, 삽입 된 외부의 상황을 직접 진화하는 것과 동일합니다.

따라서 좋은 거래, 제 P의 L은, 외부 케이스에 다음 G 덱 스트로스, 변색 캔 삽입된다.

 

그리고 우리는 색상 문제 삼촌 노드에 대해 이야기 :

노드 위의 컬러 삼촌 노드의 첫 번째 설명은 이미 삼촌이 검은 색 논의, 우리는 노드 삼촌 빨간색 상황을 고려할 필요가 없다.

빨간색 핸들은 실제로 매우 간단 노드 삼촌, 다음 그림은 예를 보여줍니다 :

우리는 단지 전체 컬러 P와 U를 변경하고, G는 (검은 색 노드의 수의 균형을 유지하기 위해)에 색상을 변경한다면 문제는 P 사이에, N은 붉은 색되게한다는 것이다합니다.

그러나 또한 문제를 일으킬 수있는이 방법은, 문제는 우리가 빨간색 G.로 색상을 변경할 것입니다

이 또한 문제가 할아버지 노드 인 요인 3)를 소개합니다.

노드가 검은 증조부 인 경우, 모두는 증조부의 노드가 빨간색 지금 RBTree 균형하지만 경우, 말을?

NG가 설명 될 수 사이의 솔루션이 이미 수행 된, 그래서 우리는 지금, 색상 문제와 할아버지의 할아버지 GG G와 N 사이의 바닥에 같은 붉은 색에 NP 문제를 변환합니다.

 

추천

출처www.cnblogs.com/lxy-xf/p/11369568.html