728x90
  • 이진 탐색 트리로 구현
  • 범위 검색과 정렬에 유리한 컬렉션 클래스
  • 이진 트리는 모든 노드(요소)가 최대 2개의 하위 노드까지만 가질 수 있음
  • in-order(중위순회) 방식을 가짐

이진 탐색 트리

자식을 최대 2개까지만 갖고 부모보다 작은 값은 왼쪽, 큰 값은 오른쪽에 저장하는 트리

데이터가 많을 수록 값의 크기 비교에 필요한 횟수가 늘어나 추가 및 삭제에 시간이 많이 걸림

트리 순회

pre-order(전위순회) : 부모를 읽고 자식을 읽는 순회

post-order(후위순회) : 자식을 읽고 부모를 읽는 순회

in-order(중위순회) : 왼쪽자식-부모-오른쪽자식 노드 순으로 읽는 순회. 오름차순으로 정렬됨

level-order : 위에서부터 왼쪽에서 오른쪽으로 읽는 순회

생성자

TreeSet();
TreeSet(Collection c); // 주어진 컬렉션 저장하는 트리 생성
TreeSet(Comparator comp); // 주어진 정렬기준으로 정렬하는 트리 생성

메소드

first(), last()

정렬된 순서에서 처음이나 마지막 객체를 반환

ceiling()

올림. 지정된 객체와 같은 객체를 반환하고 없으면 큰 값을 가직 객체 중 가장 까가운 객체를 반환 (없으면 null)

floor()

버림. 지정된 객체와 같은 객체를 반환하고 없으면 작은 값을 가직 객체 중 가장 까가운 객체를 반환 (없으면 null)

higher(), lower()

지정된 객체보다 큰 값/작은 값을 가진 객체 중 제일 가까운 값의 객체를 반환하고 없으면 null 반환

subSet(시작범위, 끝범위)

범위 검색의 결과를 반환하고 끝 범위는 포함되지 않음

headSet()

지정된 객체보다 작은 값의 객체들을 반환

tailSet()

지정된 객체보다 큰 값의 객체들을 반환

주의

TreeSet은 추가하려는 객체가 정렬기준을 가지고 있던가 따로 비교 기준을 생성자에 매개변수로 줘야 함

 

'Java > Notion' 카테고리의 다른 글

컬렉션 프레임워크 - Collections 클래스  (0) 2023.05.01
Map - HashMap / Hashtable  (0) 2023.05.01
Set - HashSet  (0) 2023.04.30
Comparator / Comparable  (0) 2023.04.30
Arrays  (0) 2023.04.30

+ Recent posts