백준_1991 트리 순회 (이진트리, 순회)Algorithm/Algorithm 문제2024. 3. 8. 11:15
Table of Contents
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class BJ_1991_트리순회 {
static Node[] tree;
static StringBuilder preOrderResult = new StringBuilder();
static StringBuilder inOrderResult = new StringBuilder();
static StringBuilder postOrderResult = new StringBuilder();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
tree = new Node[n];
int i, ind, leftInd, rightInd;
char left, right;
StringTokenizer st;
for (i=0; i<n; i++) {
st = new StringTokenizer(br.readLine(), " ");
ind = st.nextToken().charAt(0) - 'A';
left = st.nextToken().charAt(0);
right = st.nextToken().charAt(0);
if (left == '.') {
leftInd = -1;
} else {
leftInd = left - 'A';
}
if (right == '.') {
rightInd = -1;
} else {
rightInd = right - 'A';
}
tree[ind] = new Node(leftInd, rightInd);
}
preOrder(0);
inOrder(0);
postOrder(0);
System.out.println(preOrderResult);
System.out.println(inOrderResult);
System.out.println(postOrderResult);
}
static void preOrder(int a) {
if (a == -1) {
return;
}
preOrderResult.append((char)(a+'A'));
preOrder(tree[a].left);
preOrder(tree[a].right);
}
static void inOrder(int a) {
if (a == -1) {
return;
}
inOrder(tree[a].left);
inOrderResult.append((char)(a+'A'));
inOrder(tree[a].right);
}
static void postOrder(int a) {
if (a == -1) {
return;
}
postOrder(tree[a].left);
postOrder(tree[a].right);
postOrderResult.append((char)(a+'A'));
}
static class Node {
int left;
int right;
public Node(int left, int right) {
this.left = left;
this.right = right;
}
}
}
'Algorithm > Algorithm 문제' 카테고리의 다른 글
백준_10868 최솟값 (세그먼트 트리) (0) | 2024.03.16 |
---|---|
백준_2042 구간 합 구하기 (세그먼트 트리) (0) | 2024.03.16 |
백준_14425 문자열 집합 (트라이) (0) | 2024.03.07 |
백준_1068 트리 (트리, dfs) (0) | 2024.03.06 |
백준_11725 트리의 부모 찾기 (트리, dfs) (0) | 2024.03.05 |
@kjyyjk :: 녕의 학습 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!