본문 바로가기

JAVA32

Comparator인터페이스 보호되어 있는 글 입니다. 2023. 4. 19.
Comparable인터페이스 보호되어 있는 글 입니다. 2023. 4. 19.
이진 검색 트리(binary search tree) 이진 검색 트리 정의 모든 노드가 최대 두 개의 자식 노드를 가지고, 왼쪽 자식 노드는 현재 노드보다 작은 값을, 오른쪽 자식 노드는 현재 노드보다 큰 값을 가지도록 구성되어 있는 자료구조 구조 어떻게 값을 찾아가는 지? 어떤 특정값을 찾으려고 할 때, 한 노드와 비교해서 비교한 노드보다 작은 값이면 왼쪽 자식 노드 방향으로, 큰값이면 오른쪽 자식 노드 방향으로 이동. 특징 -비교 범위가 1/2씩 줄어들어서 자료 검색이 빠름 -어떤 기준으로 값의 크기를 비교할 것인지는 개발자가 직접 구현해야함. 오름차순 맨 왼쪽 노드 부터 시작해서 왼쪽 👉 부모 👉 오른쪽순으로 순회 내림차순 맨 오른쪽 노드 부터 시작해서 오른쪽 👉 부모 👉 왼쪽순으로 순회 23, 10, 48, 15, 7, 22 , 56을 이진 검색트리.. 2023. 4. 18.
TreeSet 클래스 TreeSet 클래스 정의 TreeSet 클래스는 Set 인터페이스를 구현한 컬렉션 클래스 중 하나이고, 이진 검색 트리 자료구조를 이용해서 정렬된 상태로 요소를 저장하는 클래스 특징 -요소를 추가할 때 자동으로 정렬 -중복된 요소를 허용하지 않음 -null 값을 저장할 수 없음 -String클래스도 정렬방식이 구현되어 있음 정렬된다는 건? -숫자는 1,2,3 순 -한글은 ㄱ,ㄴ,ㄷ순 -영어는 A,B,C순 사용하는 이유 검색과 범위 검색(range search)을 빠르게 수행할 수 있기 때문에, 대량의 데이터를 다루는 경우 유용하게 사용 요소의 순서가 중요한 경우에 사용 단점 이진 검색 트리 자료구조를 이용하기 때문에, 데이터 추가나 삭제 시 자동으로 재정렬되는 과정이 필요해서 ArrayList나 Lin.. 2023. 4. 17.