정의
이진탐색 : 탐색에 소요되는 시간복잡도는 O(logN), but 삽입, 삭제가 불가능
연결리스트 : 삽입, 삭제의 시간복잡도는 O(1), but 탐색하는 시간복잡도가 O(N)
이 두가지의 장점을 합하여 만든 것
즉, 효율적인 탐색 능력을 가지고, 자료의 삽입•삭제도 가능하게 만드는 것
특징
중복 노드가 없어야 하는 이유는?
검색 목적 자료구조인데, 굳이 중복이 많은 경우에 트리를 사용하여 검색 속도를 느리게 할 필요가 없음.
(트리에 삽입하는 것보다, 노드에 count 값을 가지게 하여 처리하는 것이 훨씬 효율적)
순회 방식
중위 순회 : 1 → 3 → 5 → 7 → 8 → 10
검색
삽입
삭제
1. 자식노드가 없는 경우
해당 노드를 그냥 없애기만 하면 됩니다.
2. 자식노드가 하나 있는 경우
해당 노드를 지우고, 해당 노드의 자식노드와 부모노드를 연결해주면 됩니다.
3. 자식노드가 두 개 있는 경우
1. 삭제 대상 노드의 오른쪽 서브트리를 찾는다.
트리 생성
트리 삭제
삽입, 검색, 삭제 시간복잡도는 트리의 Depth에 비례