Search
Duplicate

바이너리 서치 트리

순서
2
날짜
2023/08/23
사람
상태
Done
바이너리 서치의 특징
바이너리 서치 트리의 예시를 그림과 함께 설명해보겠습니다. 각 노드는 숫자 값으로 표시되며, 왼쪽 자식 노드의 값은 부모 노드의 값보다 작고, 오른쪽 자식 노드의 값은 부모 노드의 값보다 큽니다.
8 / \ 3 10 / \ \ 1 6 14 / \ / 4 7 13
Plain Text
복사
위의 그림은 다음과 같은 바이너리 서치 트리를 나타냅니다. 여기서 각 노드의 값은 그 노드의 중심값이며, 이 중심값은 트리 내에서 해당 노드를 식별하는데 사용됩니다.
루트 노드: 값 8
왼쪽 서브트리: 값 3, 1, 6, 4, 7
오른쪽 서브트리: 값 10, 14, 13
이제 몇 가지 작업을 시각적으로 설명해보겠습니다.
1.
검색: 값 7을 검색한다고 가정해봅시다. 시작은 루트 노드에서부터 시작합니다. 루트 노드의 값은 8이며, 7은 8보다 작으므로 왼쪽 자식 노드로 이동합니다. 그리고 나서 6 노드로 이동하고, 7을 찾게 됩니다.
2.
삽입: 값 5를 삽입하려고 합니다. 먼저 루트 노드부터 시작합니다. 5는 8보다 작으므로 왼쪽으로 이동합니다. 다음은 3 노드로 이동합니다. 5는 3보다 크므로 오른쪽으로 이동합니다. 하지만 6 노드가 이미 오른쪽 자식으로 있으므로 5를 6 노드의 왼쪽 자식으로 삽입합니다.
3.
삭제: 값 3을 삭제하려고 합니다. 먼저 삭제할 노드를 찾습니다. 3은 루트 노드의 왼쪽 서브트리에 있습니다. 3 노드는 자식 노드가 하나밖에 없으므로 그 자식 노드를 부모 노드에 연결하고 3 노드를 삭제합니다.
이렇게 바이너리 서치 트리는 검색, 삽입, 삭제를 효율적으로 수행할 수 있는 자료 구조입니다. 다만, 트리의 균형을 유지하기 위해 균형 잡힌 트리 구조를 사용하는 것이 중요합니다.