여기서 루트 "3" 제거 후에 대체노드가 "2"인데
그렇다면 "2"가 대체된 후에 이중흑색노드가 되는 것은
루트가 된 "2" 아닌가요?
어째서 노드 "1"이 흑색 노드로 바뀌는 것인지 이해가 되지 않습니다.....
(경로 상의 흑색 노드가 같게 유지되어야 한다는 규칙은 알겠는데
삭제 연산 밸런싱 중에서 도대체 무슨 케이스로 인해 저렇게 되는 것인지 모르겠습니다.....)
그렇다면 "2"가 대체된 후에 이중흑색노드가 되는 것은
루트가 된 "2" 아닌가요?
어째서 노드 "1"이 흑색 노드로 바뀌는 것인지 이해가 되지 않습니다.....
(경로 상의 흑색 노드가 같게 유지되어야 한다는 규칙은 알겠는데
삭제 연산 밸런싱 중에서 도대체 무슨 케이스로 인해 저렇게 되는 것인지 모르겠습니다.....)
3 삭제할때 루트노드(3)를 가리키는 애가 2를 가리키게 바뀌고 2는 1 가리키는 상태 그대로 끌려가잖아
1 위치 변경은 이해되는데 흑색으로 칠해지는 이유가 궁금한 겁니다... 대체된 이중흑색노드가 루트인 경우 그 자식들을 검게 칠하는 예외처리라도 있는 것일까요? 검색해도 결과가 나오지 않아서...
먼저 1노드가 검은색으로 바꿔지고(그래야 d가 같아지니까) 이중흑색노드라 부모노드를 빨강으로 바꿀지 말지를 생각해야되는데 부모가 루트라 못바꾸는거 아님?
루트 관련 예외처리인 것 같군요... 인터넷에는 이 부분이 잘 나와있지 않아서 제가 햇갈렸나봅니다....
사람이 생각하면 자식노드 하나를 빨간색으로 칠하는게 나중에 더 추가될 노드를 생각하면 합리적으로 보이지만 컴퓨터는 무조건 프로토콜을 순서대로 진행하니 고려를 안하는거지 레드블랙트리가 일단 빨간노드를 깜장으로 칠하고, 그 다음에 리밸런싱을 하는거니까
흠... 아직 완벽히 이해는 안되지만 답변 감사합니다 집 가서 다시 생각해봐야겠네요