스터디하면서 서로 죽을 맛으로 가르쳐 주고 배웠던 이진탐색트리 삭제 연산... 🥲 이론을 보면서 이해하는 식으로 공부했다.
이진탐색트리 삭제 연산에서는 3가지 경우가 있다.
첫째, 삭제하려는 노드가 단말 노드일 경우❗️
그림에서 보이는 것처럼 삭제하고자 하는 단말 노드를 삭제해 주면 된다.
둘째, 삭제하려는 노드가 하나의 왼쪽이나 오른쪽 자식 노드 중 하나만 가지고 있는 경우 ❗️
왼쪽 혹은 오른쪽 자식 노드 중 하나만 갖고 있을 때, 삭제하고자 하는 노트는 삭제, 자식 노드를 삭제하고자 하는 노드의 위치에 붙여 준다.
셋째, 삭제하려는 노드가 두 개의 서브 트리 모두 가지고 있는 경우 ❗️
삭제하고자 하는 노드와 가장 비슷한 값을 가진 노드를 삭제 노트 위치로 가져온다.
왼쪽 서브 트리에서 제일 큰값, 오른쪽 서브 트리에서 제일 작은 값을 기준으로 가장 비슷한 값의 노드를 찾을 수 있다.