티스토리 뷰

🧩 자바

[Data Structure] Tree

홓옇 2023. 6. 1. 18:46

Tree

  1. nodeedge 로 연결한 계층형hierarchical자료구조
  2. 하나의 노드로 이루어진 트리는 그 노드 자체가 트리이며, 루트이다

트리 용어

  1. 차수 (degree): 노드가 가지고 있는 서브트리의 수
  2. 리프, 단말: 차수가 0인 노드
  3. 비단말: 차수가 0이 아닌 노드
  4. 트리의 차수: 트리가 가지고 있는 노드 중에서 차수 중에서 최대 차수
  5. 레벨
  6. 트리의 높이: 트리의 최대 레벨

바이너리 트리 (이진 트리)

  1. 모든 노드가 두개의 서브트리리프노드인 트리
  2. 이진 트리 자체가 노드가 없는 공백 트리일 수 있음.
  3. 레벨 k의 최대 노드수는 2^k
  4. 높이가 h인 이진 트리의 최대노드 수 2^(h+1) - 1

편향 트리

포화 이진 트리

완전 이진 트리

완전 이진트리일까요

완전 이진트리 일차원 배열 표현

이진 트리의 인덱스 관계

일차원 배열 형태로 저장하면 노드의 삽입, 삭제시 많은 시간복잡도 야기

이진 트리 연결리스트 표현

이진 트리 연결 표현

중위 순회

전위 순회

후위 순회

일반트리 이진트리 변환

첫번째 자식 노드를 left 노드로 삼고 형제 노드를 right 노드로 연결한다.

제 경험상 항상 이렇지는 않았어요.

'🧩 자바' 카테고리의 다른 글

[JAVA] 추상클래스와 인터페이스  (0) 2023.07.31
BFS, DFS  (0) 2023.05.16
[Data Structure] 큐  (0) 2023.02.01
[Data Structure] 스택  (0) 2023.01.31
[Data Structure] 단순 연결 리스트  (0) 2023.01.26
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함