[Algorithm] 자료구조 - 트리 (Tree), 이진 트리(Binary tree)

2021. 3. 25. 04:02·Computer Science/Algorithm
728x90

 

트리 (Tree)


계층형 자료 구조

트리의 최상위 원소를 루트(root)라고 하고,

나머지 모든 원소는 부모 원소가 있고 0개 이상의 자식 원소를 가진다

자식 노드가 없는 노드는 리프 노드(leaf node)라고 한다

 

 

이진 트리 (Binary tree)

가장 기본적인 트리의 유형


각 노드에 왼쪽, 오른쪽 자식이라는 최대 2개의 자식이 있는 트리

이진 탐색 트리 (BST, Binary Search Tree)는 다음 방법으로 노드를 정렬한다

1. 왼쪽 하위 트리의 키(key)가 부모 노드의 키보다 작거나 같다

2. 왼쪽 하위 트리의 키가 부모 노드의 키보다 크다

 

 

이진 탐색 트리의 API와 시간 복잡도

API (Application Programming Interface)


- Insert(k) : 트리에 새 원소 k를 삽입

- Delete(k) : 트리에서 원소 k를 삭제

- Search(k) : 트리에서 값이 k인 원소를 검색 (없을 수도 있음)

- FindMax() : 트리에서 가장 큰 값을 찾는다

- FindMin() : 트리에서 가장 작은 값을 찾는다

> 모든 연산은 트리가 균형을 이룰 때는 평균적인 시간 복잡도 O(logn),

  트리가 균형을 이루지 않았을 때는 최악의 시간 복잡도 O(n)

 

 

* 항상 균형을 유지하는 이진 탐색 트리

  : AVL 트리, 레드-블랙 트리(RB-트리) 등

 

* 정렬된 딕셔너리(Dictionary)는 RB-트리를 사용해 구현한다

 

 

 

💡 자료 구조 : codesyun.tistory.com/106

 

[Algorithm] 자료 구조(Data Structure) 란?

자료 구조(Data Structure) - 데이터의 구체적 표현이며, 데이터를 프로그래머 관점에서 정의한다 - 데이터를 메모리에 저장하는 방법을 나타낸다 - 문제 유형에 따라 최적의 자료 구조를 선택해야

codesyun.tistory.com

 

 

 

728x90
저작자표시 비영리 (새창열림)

'Computer Science > Algorithm' 카테고리의 다른 글

[Algorithm] 자료구조 - 그래프 (Graph)  (0) 2021.03.25
[Algorithm] 자료구조 - 해시 테이블 (Hash table)  (0) 2021.03.25
[Algorithm] 자료구조 - 힙(Heap)과 우선순위 큐(Priority Queue)  (0) 2021.03.25
[Algorithm] 자료구조 - 큐 (Queue)  (0) 2021.03.25
[Algorithm] 자료구조 - 스택 (Stack)  (0) 2021.03.25
'Computer Science/Algorithm' 카테고리의 다른 글
  • [Algorithm] 자료구조 - 그래프 (Graph)
  • [Algorithm] 자료구조 - 해시 테이블 (Hash table)
  • [Algorithm] 자료구조 - 힙(Heap)과 우선순위 큐(Priority Queue)
  • [Algorithm] 자료구조 - 큐 (Queue)
s_ih_yun
s_ih_yun
  • s_ih_yun
    CODESYUN
    s_ih_yun
  • 전체
    오늘
    어제
    • 분류 전체보기 (339)
      • Web (8)
      • Java (7)
      • Spring (19)
      • Git (16)
      • MyBatis (1)
      • HTML & CSS (14)
      • JavaScript (11)
      • DevOps (4)
      • Cloud (8)
      • Lanuage (13)
        • C++ (3)
        • Python (10)
      • DB (1)
        • MySQL (1)
        • Oracle (2)
      • Computer Science (26)
        • Concept (3)
        • Algorithm (23)
      • Baekjoon (104)
        • 단계별로 풀어보기 (78)
      • CodeUp (98)
        • Python 기초 100제 (98)
      • Programmers (2)
      • Books (3)
      • etc (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • Syun's Pages
  • 인기 글

  • 태그

    db
    알고리즘
    web
    Tistory
    SourceTree
    myBatis
    Python
    웹
    C
    c++
    CSS
    clean code
    github
    MySQL
    spring
    BOJ
    Programmers
    git
    HTML
    codeup
    oracle
    단계별로 풀어보기
    자료구조
    VS Code
    aws
    java
    JavaScript
    CodeUp 기초 100제
    Cloud
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
s_ih_yun
[Algorithm] 자료구조 - 트리 (Tree), 이진 트리(Binary tree)
상단으로

티스토리툴바