백준_1991_트리순회
https://www.acmicpc.net/problem/1991
문제를 만나고... 과거에 분명 했었던 것 같은 이진트리가 생각이 나지않아 이번엔 까먹지 않게 확실히 정리하자..!
라는 마음으로 이진트리에 대해 정리하는 글 _〆(。。)
모든 노드들이 둘 이하(0,1,2 개)의 자식을 가진 트리.
❗️ 자식노드의 위치가 각각 왼쪽과 오른쪽으로 다르다면 서로 다른 트리!






이거 하려고 여기까지 왔다⎛⑉・⊝・⑉⎞

public static void pre_order(Node node){
if(node == null) return;
System.out.print(node.value);
pre_order(node.left);
pre_order(node.right);
}
public static void in_order(Node node) {
if(node == null) return;
in_order(node.left);
System.out.print(node.value);
in_order(node.right);
}
public static void post_order(Node node) {
if(node == null) return;
post_order(node.left);
post_order(node.right);
System.out.print(node.value);
}
백준_1991_트리순회
https://www.acmicpc.net/problem/1991
풀이코드💡
import java.util.*;
import java.io.*;
public class BJ_1991_트리순회 {
static Node tree = new Node('A', null, null);
static int N;
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
N = Integer.parseInt(br.readLine());
for(int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
char root = st.nextToken().charAt(0);
char left = st.nextToken().charAt(0);
char right = st.nextToken().charAt(0);
insert(tree, root, left, right);
}
pre_order(tree);
System.out.println();
in_order(tree);
System.out.println();
post_order(tree);
System.out.println();
}
static class Node {
char value;
Node left;
Node right;
Node(char value, Node left, Node right) {
this.value = value;
this.left = left;
this.right = right;
}
}
public static void insert(Node temp, char root, char left, char right) {
if(temp.value == root) {
temp.left = (left == '.' ? null : new Node(left, null, null));
temp.right = (right == '.' ? null : new Node(right, null, null));
} else {
if(temp.left != null){
insert(temp.left,root,left,right);
}
if(temp.right != null) {
insert(temp.right, root, left, right);
}
}
}
public static void pre_order(Node node){
if(node == null) return;
System.out.print(node.value);
pre_order(node.left);
pre_order(node.right);
}
public static void in_order(Node node) {
if(node == null) return;
in_order(node.left);
System.out.print(node.value);
in_order(node.right);
}
public static void post_order(Node node) {
if(node == null) return;
post_order(node.left);
post_order(node.right);
System.out.print(node.value);
}
}
이제 안까먹었으면 좋겠는데... 할 수 있지..? \=͟͟͞͞(꒪ᗜ꒪ ‧̣̥̇)