Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Java
- 알고리즘
- 자바 순열 코드
- 재귀
- 순열코드
- 자바입출력
- str to char array
- 상속
- Interface
- 자바 조합 재귀
- char to str
- java 내부 클래스
- 알고리즘 그래프
- jquery 필터선택자
- jquery 이벤트 처리
- 자바
- java Collections.sort()
- 재귀함수
- 서로소
- 자바스크립트 이벤트처리
- java lambda
- 자바스크립트 이벤트중지
- jquery dom 계층 선택자
- 자바 재귀 조합
- 후위표기
- parseInt()
- inner class
- 조합 재귀
- jquery 속성선택자
- 순열 재귀
Archives
- Today
- Total
유블로그
트리 이진트리 이진탐색트리 간단 정리 본문
트리
- 비선형, 계층형 구조
- 방향성이 있는 비순환 그래프
- 원소들간 1:n 관계
- 사이클이 존재할 수 없다.
- 노드 : 트리원소
- 간선 : 노드 연결선
- 루트노드 : 트리의 최상위 노드
- 형제노드 : 부모가 같은 노드들
- 조상노드 : 간선을 따라 위로 올라갔을 때 만나는 부모노드들
- 차수 :
노드 차수 => 노드에 연결된 자식노드 수
트리 차수 => 트리에 있는 노드의 차수 중 가장 큰 값 - 단말노드 : 차수가 0인 노드
- 높이 :
노드 높이 => 루트에서 노드애 이르는 간선 수
트리 높이 => 트리 노드 중 가장 큰 높이 값(즉 단말노드 중 가장 밑에 있는) - 노드가 N개인 트리는 항상 N-1개의 간선을 가짐
- 종류 : 이진 트리, 이진 탐색 트리, 균형 트리(AVL, red-black), 이진 힙
이진 트리
- 모든 노드들이 2개의 서브트리를 갖는다.
- i레벨에서 노드의 최대 개수는 2^i개
- 높이가 h인 이진트리 최소 노드 개수는 h+1
포화 이진 트리
- 모든 레벨의 노드가 포화상태인 이진 트리
완전 이진 트리
- 높이가 h 이고 노드 수가 n 일 때 포화 이진 트리의 1번 노드부터 n번까지 빈자리가 없는 이진 트리.
편향 이진 트리
- 높이 h에 대한 최소 노드 개수를 가지면서 한 쪽 방향의 자식만 있는 트리
이진 트리 순회
전 중 후가 부모 기준이라고 생각하면 된다.
- 전위 순회
- 부모 - 왼쪽자식 - 오른쪽자식 순 순회
- 중위 순회
- 왼쪽 자식 - 부모 - 오른쪽자식 순 순회
- 후위 순회
- 왼쪽 자식 - 오른쪽자식 - 부모 순 순회
트리 구현 방법
1. 인접 배열
빨간색 숫자가 배열 인덱스.
i번 노드의 부모는 i/2번, i번 노드의 왼쪽 자식 번호는 i*2, i번 노드의 오른쪽 자식 번호는 i*2+1 이다.
배열 최대 크기 = 2^(n+1)-1
단점 : 편향이진트리의 경우 메모리 낭비. 트리 중간에 새로운 노드를 삽입/삭제 할 때 비효율적이다.
2. 인접 리스트
n개의 배열을 만드는데 각 칸을 arraylist로 정의한다면, 위 그림으로 봤을 때 1번노드의 arraylist엔 2, 3 이 들어있는 식.
'자료구조' 카테고리의 다른 글
단순, 원형, 이중 연결 리스트 간단정리 (0) | 2021.05.25 |
---|