작성한 질문수
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part3: 자료구조와 알고리즘
이진 탐색 트리
작성
·
543
0
삭제하려는 노드의 왼, 오 자식이 모두 있는 경우 꼭 바로 다음 데이터로 교체하는 이유가 있나요? 예를 들어 삭제하려는 노드의 왼, 오 자식과 교체하거나 바로 이전 데이터랑 교체해도 트리 구조에 문제 없지 않나요?
Replace 함수는 부모와 자식 사이의 교체만 발생한다고 가정한 함수인가요? 만약 같은 깊이의 서브트리끼리 교체한다고 하면 부모 노드와의 관계가 깨질 것 같아서요
답변 1
이것저것 하다 보면 반례를 찾으실 수 있을겁니다.
함수 자체는 부모/자식 교체라는 조건은 없고 단순한 서브트리 교체입니다. 하지만 말씀대로 정말 랜덤한 2 개의 노드를 대상으로 실행하면,우리가 원하는 트리 구조가 깨지겠죠.