"값을 넣기 위해서는 넣어야 할 위치까지 접근하는 시간으로 O(h) 가 걸리면서 " 라고 하셨는데, 값을 넣어야 할 위치는 삭제 대상의 successor 로 정해진 것 아닌가요?
1단계에서 삭제 대상까지 접근하는데 O(n) 이 걸렸고, 값을 넣어야 할 위치는 해당 대상의 부모노드 이므로 O(1) 이라고 생각 했습니다.
결과적으로. 1, 2, 3 단계를 합쳐서 O(n + 1 + 1) 로 O(n) 이 되어야 할 것 같은데, 혹시 제가 놓친 부분이 있다면 알려주시면 감사하겠습니다.
+0
2021년 9월 10일
(successor)값을 넣어야 할 위치까지 접근하는 시간 = 지울 노드를 찾는 시간 = nodeToDelete를 탐색하는 시간 = O(h)가 걸린다 라는 말씀으로 이해하였는데, 삭제 경우 3의 가장 마지막 부분에 보면 "탐색을 제외하고" 라고 쓰여있기도 하고 삭제 경우 1과 2의 시간복잡도를 구할 때도 탐색 단계를 제외하고 구한 것 아닌가요..?
댓글 2개
여전히 이해가 되지 않아 다시 문의 드립니다.
"값을 넣기 위해서는 넣어야 할 위치까지 접근하는 시간으로 O(h) 가 걸리면서 " 라고 하셨는데,
값을 넣어야 할 위치는 삭제 대상의 successor 로 정해진 것 아닌가요?
1단계에서 삭제 대상까지 접근하는데 O(n) 이 걸렸고, 값을 넣어야 할 위치는 해당 대상의 부모노드 이므로 O(1) 이라고 생각 했습니다.
결과적으로. 1, 2, 3 단계를 합쳐서 O(n + 1 + 1) 로 O(n) 이 되어야 할 것 같은데, 혹시 제가 놓친 부분이 있다면 알려주시면 감사하겠습니다.