개발자가 말대꾸?
봄 백엔드 개발일기
개발자가 말대꾸?
전체 방문자
오늘
어제
  • 분류 전체보기 (42)
    • 알고리즘 공부 (13)
    • 디자인 패턴 공부 (1)
    • Spring (15)
      • Spring Boot (12)
      • Spring Data (1)
      • Spring Security (1)
    • Java (2)
    • MySQL (5)
    • EDITOR (3)
      • Intellij (3)
      • vscode (0)
    • 기타 (3)
      • 에러 (3)
      • 감상문 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Python
  • MSA 아키텍처에서 Config Server의 변경 사항을 MSA에게 전달하는 방법
  • SpringSecurity 프로젝트
  • rest-api
  • 프로그래머스
  • 프로그래머스 2단계
  • spring
  • GrantedAuthority
  • JPA 여러 컬럼 유니크
  • 권한 프로그래밍
  • BasicAuthenticationFilter
  • jsp
  • Jpa 다중 제약조건 설정
  • mysql
  • spring boot
  • RabbitMQ Kafka 차이
  • JPA 여러 컬럼 Unique
  • intellij live templates
  • 라이브 템플릿
  • SpringBoot
  • 인텔리제이 좋은점
  • IntelliJ
  • 인텔리제이 사용법
  • JPA Unique 제약조건
  • BasicAuthorization
  • JPA
  • Java
  • 코드 템플릿
  • intelliJ 단축키
  • UserDetails 도메인

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
개발자가 말대꾸?

봄 백엔드 개발일기

[자료구조] 트리(Tree)
알고리즘 공부

[자료구조] 트리(Tree)

2022. 5. 8. 20:41

 

 

트리 ( Tree )

기본적으로 트리의 크기가 N개일 때, 전체 간선의 개수는 N-1개입니다.

 

 

트리는 계층적인 구조를 표한할 때 유용하게 사용할 수 있는 자료구조입니다.

 

 

 

[ 트리 관련 용어 설명 ]

 

루트 노드 (root node) 부모가 없는 최상위 노드입니다.
단말 노드 (leaf node) 자식이 없는 노드를 말합니다.
크기 (size) 트리에 포함된 모든 노드의 개수입니다.
깊이 (depth) 루트노드부터의 거리를 말합니다. 
높이 (height) 깊이 중 최댓값을 의미합니다.
차수 (degree) 자식 방향의 간선갯수를 의미합니다.

 

 

 

 

 

이진 탐색 트리 ( Binary Search Tree )

 

 

왼쪽 자식 노드 < 부모 노드 < 오른쪽 자식 노드

 

 

이진 탐색이 동작할 수 있도록 고안된 효율적인 탐색이 가능한 자료구조입니다.

 

 

 

 

이진 탐색 트리의 탐색

 

 

탐색 테스트 케이스 : 37

 

37은 30보다 크기 때문에 오른쪽 간선을 탑니다. 
37은 48보다 작기 때문에 왼쪽 간선을 탑니다.

37을 만나서 탐색이 종료됩니다.


"이진 탐색 트리의 탐색은 이상적인 경우 O(log n)의 시간복잡도를 가집니다." ( 좌 우 밸런스가 잘 잡힌 경우 )

 

 

 

 

 

트리의 순회 ( Tree Traversal )

 

트리 자료구조에 포함된 노드를 한 번씩 장문하는 방법을 의미합니다.

1. 전위 순회 (pre-order traverse): 루트를 먼저 방문합니다.
2. 중위 순회 (in-order traverse): 왼쪽 자식을 방문한 뒤에 루트를 방문합니다.
3. 후위 순회 (post-order traverse): 오른쪽 자식을 방문한 뒤에 루트를 방문합니다.

 

 

 

A는 ROOT 노드 입니다.

 

 

 

 

전위 순회 pre-order  A B D E C F G
중위 순회 in-order  D B E A F C G
후위 순회 post-order  D E B G G C A

 

 

 

 

 

'알고리즘 공부' 카테고리의 다른 글

[알고리즘] 에라토스테네스의 체  (0) 2022.05.20
Least Recently Used 자료구조 구현 Java  (0) 2022.05.18
[자료구조] 트라이(Trie)  (0) 2022.05.05
프로그래머스 스택/큐 : [프린터] JAVA 풀이  (0) 2022.05.02
프로그래머스 3단계/효율성 : [숫자 게임] Java 풀이  (0) 2022.05.01
    '알고리즘 공부' 카테고리의 다른 글
    • [알고리즘] 에라토스테네스의 체
    • Least Recently Used 자료구조 구현 Java
    • [자료구조] 트라이(Trie)
    • 프로그래머스 스택/큐 : [프린터] JAVA 풀이
    개발자가 말대꾸?
    개발자가 말대꾸?
    - ing9990.com - 열정적인 ENTP - 주말 코딩, 퇴근 코딩 ing9990

    티스토리툴바