자료구조 - 이진트리
이진 트리 구현 시 주의 사항
- 큰값은 오른쪽, 작은값은 왼쪽, 같은 값은 일관성있게 왼쪽 혹은 오른쪽
- 트리 노드 삭제 방법
* 지우려는 대상의
1. 자식 노드가 없는 경우
- 대상 부모 노드에서 대상 노드를 null 처리
2. 자식 노드가 하나인 경우
- 대상 부모 노드에서 대상 노드를 대상 노드의 하나인 자식 노드로 교체
3. 자식 노드가 두개인 경우
- 대상 노드의 오른쪽 노드 자식 중 가장 작은 노드 선택
- 가장 작은 노드의 부모 노드의 왼쪽 노드를 가장 작은 노드의 오른쪽 노드로 변경
- 대상 노드 값을 가장 작은 노드 값으로 교체
* 노드 삭제를 제외하곤 쉽군...
구현:
https://docs.google.com/file/d/0B8GnLwsufqFhSy14SUVEYlpRQnc/edit?usp=sharing
- 큰값은 오른쪽, 작은값은 왼쪽, 같은 값은 일관성있게 왼쪽 혹은 오른쪽
- 트리 노드 삭제 방법
* 지우려는 대상의
1. 자식 노드가 없는 경우
- 대상 부모 노드에서 대상 노드를 null 처리
2. 자식 노드가 하나인 경우
- 대상 부모 노드에서 대상 노드를 대상 노드의 하나인 자식 노드로 교체
3. 자식 노드가 두개인 경우
- 대상 노드의 오른쪽 노드 자식 중 가장 작은 노드 선택
- 가장 작은 노드의 부모 노드의 왼쪽 노드를 가장 작은 노드의 오른쪽 노드로 변경
- 대상 노드 값을 가장 작은 노드 값으로 교체
* 노드 삭제를 제외하곤 쉽군...
구현:
https://docs.google.com/file/d/0B8GnLwsufqFhSy14SUVEYlpRQnc/edit?usp=sharing
댓글
댓글 쓰기