일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- ubuntu 패스워드
- 탐욕 알고리즘
- 배열 탐색
- Spring MVC
- 스키마 디자인
- custom exception
- git workflow
- char to int
- N:N
- Spring
- REST HTTP API
- 리눅스 사용권한
- 스키마 설계
- http 응답코드
- root passwd
- 코드스테이츠
- ubuntu passwd
- ubuntu
- git 설정
- O(log n)
- mapstruct
- Java
- set-version
- 함수형 인터페이스
- AOP
- Spring 예외처리
- JAVA 재귀함수
- file i/o
- 자료구조
- RestControllerAdvice
Archives
- Today
- Total
개발소설
[자료구조] 트리 순회 (Tree traversal) 본문
트리 순회 (Tree traversal)
- 특정 목적을 위해 트리의 모든 노드를 방문하는 것을 트리 순회라고 한다.
- 트리 순회에는 전위 순회, 중위 순회, 후위 순회가 있다.
전위 순회
- root를 먼저 순회
- root(부모노드) -> 왼쪽 하위 트리 (왼쪽 자식 노드) -> 오른쪽 하위 트리 (오른쪽 자식 노드)
public ArrayList<Integer> preorderTree(Node root, int depth, ArrayList<Integer> list) { //전위 순회
if (root != null) {
list.add(root.getData()); // 부모 노드
preorderTree(root.getLeft(), depth + 1, list); // 왼쪽 자식노드
preorderTree(root.getRight(), depth + 1, list); // 오른쪽 자식노드
}
return list;
}
중위 순회
- 왼쪽 하위 트리를 모두 순회후 root를 순회
- 왼쪽 하위 트리 (왼쪽 자식 노드) -> root(부모노드) -> 오른쪽 하위 트리 (오른쪽 자식 노드)
public ArrayList<Integer> inorderTree(Node root, int depth, ArrayList<Integer> list) {
if (root != null) {
inorderTree(root.getLeft(), depth + 1, list); // 왼쪽 자식 노드
list.add(root.getData()); // root
inorderTree(root.getRight(), depth + 1, list); // 오른쪽 자식 노드
}
return list;
}
후위 순회
- 하위 트리 모두 순회후 root 순회
- 왼쪽 하위 트리 (왼쪽 자식 노드) -> 오른쪽 하위 트리 (오른쪽 자식 노드) -> root(부모노드)
public ArrayList<Integer> postorderTree(Node root, int depth, ArrayList<Integer> list) { //후위 순회
if (root != null) {
postorderTree(root.getLeft(), depth + 1, list); // 왼쪽 자식 노드
postorderTree(root.getRight(), depth + 1, list); // 오른쪽 자식 노드
list.add(root.getData());
}
return list;
}
'CS > 자료구조' 카테고리의 다른 글
[자료구조] 그래프 탐색 BFS / DFS (0) | 2023.03.20 |
---|---|
[자료구조] BST(Binary Search Tree) (0) | 2023.03.20 |
[자료구조] Graph (0) | 2023.03.20 |
[자료구조] Tree (0) | 2023.03.19 |
[자료구조] Queue (0) | 2023.03.17 |
Comments