강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

최연승님의 프로필 이미지
최연승

작성한 질문수

김영한의 실전 자바 - 중급 2편

자바가 제공하는 Set2 - TreeSet

TreeSet 구현 그림 그려주세요 제발

작성

·

107

0

 

Screenshot 2025-05-02 at 6.14.35 PM.png

 

Screenshot 2025-05-02 at 6.14.44 PM.png

이런 식으로 TreeSet 도 구현 해서 그려주세요 ㅜㅜ 이런 그림 없으면 이해 안가요 제발 ㅠㅠ 김영한 강사님 소환해서 그려주세요 제발 부탁드립니다 진짜 ㅠㅠ

답변 2

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. choi님

TreeSet의 경우 강의 메뉴얼에서 처음 그려드린 트리 구조의 구현 Node 기반의 트리 구조를 기반으로

image 29.png

 

 

이진 탐색 트리 - 입력 예시를 참고하면서 하나씩 그림을 그려보시면 원하는 목적을 충분히 달성하실 수 있을거에요 🙂

image 9.png

 

image 10.png

 

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

choi님께서 올려주신 질문에 대해 이해를 돕기 위한 설명을 준비했습니다. TreeSet의 경우 HashSet이나 LinkedHashSet과는 다르게 내부적으로 NavigableSet 인터페이스를 구현하며, 데이터가 정렬된 상태로 저장됩니다. TreeSetTreeMap을 기반으로 구현되며, 이진 탐색 트리의 형태로 요소를 저장하여 순서가 정렬됩니다.

TreeSet의 구현 및 작동 원리

  1. 데이터 삽입: TreeSet에 요소를 추가할 때마다 요소의 자연 순서 또는 제공된 Comparator에 따라 이진 탐색 트리가 자동으로 정렬됩니다.
  2. 정렬 원리: 각 요소가 삽입될 때 compareTo() 메서드를 사용해 정렬 기준을 결정합니다.
  3. 내부 구조: TreeSet의 내부 구조는 실제로 Red-Black Tree라는 특별한 균형 이진 탐색 트리 내부 구조를 사용합니다.

Example of a TreeSet

예시

  • 데이터 입력: 1, 2, 5, 8, 14, 99
  • 이 데이터는 자동적으로 크기 순서에 따라 정렬되어 트리에 넣어집니다.
  • 중간에 새로운 데이터를 추가할 경우에도 자동으로 정렬되어 들어가며, 중복 요소는 저장되지 않습니다.

링크로 이미지된 다이어그램을 참고하시어 TreeSet의 구조를 시각적으로 이해하실 수 있습니다.

이해를 돕기 위해 이미지를 추가해서 설명드렸습니다. 관련하여 더 궁금한 점이 있으시면 추가로 질문 부탁드립니다. 질문의 특성상 김영한 지식 공유자님께서 곧 더 상세한 답변을 해주실 거라 믿습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

최연승님의 프로필 이미지
최연승
질문자

이미지 안보여요! 링크도 안되고!

최연승님의 프로필 이미지
최연승

작성한 질문수

질문하기