트리의 구조와 탐색이진 탐색 트리이진 탐색 트리 삭제 연산 시간 복잡도

Q

삭제 경우 3 : 지우려는 데이터 노드가 두 개의 자식이 있을때

조회 517

좋아요 9

2021년 3월 3일




A
1개의 답변이 있어요



2021년 3월 4일

댓글 2

2021년 3월 8일
안녕하세요. 답변 감사드립니다.

여전히 이해가 되지 않아 다시 문의 드립니다.

"값을 넣기 위해서는 넣어야 할 위치까지 접근하는 시간으로 O(h) 가 걸리면서 " 라고 하셨는데,
값을 넣어야 할 위치는 삭제 대상의 successor 로 정해진 것 아닌가요?

1단계에서 삭제 대상까지 접근하는데 O(n) 이 걸렸고, 값을 넣어야 할 위치는 해당 대상의 부모노드 이므로 O(1) 이라고 생각 했습니다.

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

(주) 코드잇

대표강영훈

개인정보보호책임자강영훈

이메일support@codeit.kr

사업자 번호313-86-00797

통신판매업제 2019-서울중구-1034 호

주소서울특별시 중구 청계천로 100 시그니쳐타워 동관 10층 코드잇