인프런 커뮤니티 질문&답변

gyummm님의 프로필 이미지
gyummm

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part3: 자료구조와 알고리즘

이진 탐색 트리

이진 탐색 트리 삭제 질문

작성

·

543

0

  1. 삭제하려는 노드의 왼, 오 자식이 모두 있는 경우 꼭 바로 다음 데이터로 교체하는 이유가 있나요? 예를 들어 삭제하려는 노드의 왼, 오 자식과 교체하거나 바로 이전 데이터랑 교체해도 트리 구조에 문제 없지 않나요?

  2. Replace 함수는 부모와 자식 사이의 교체만 발생한다고 가정한 함수인가요? 만약 같은 깊이의 서브트리끼리 교체한다고 하면 부모 노드와의 관계가 깨질 것 같아서요

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

  1. 이것저것 하다 보면 반례를 찾으실 수 있을겁니다.

  2. 함수 자체는 부모/자식 교체라는 조건은 없고 단순한 서브트리 교체입니다.
    하지만 말씀대로 정말 랜덤한 2 개의 노드를 대상으로 실행하면,
    우리가 원하는 트리 구조가 깨지겠죠.

gyummm님의 프로필 이미지
gyummm

작성한 질문수

질문하기