이진 트리

  • 이진 트리는 각 노드의 자식 노드의 개수가 2 이하로 구성돼 있는 트리를 말한다.

  • 가장 직관적이면서 편리한 트리 자료구조 형태는 '배열'이다.

트리 순회하기

Question - 1991

Code

import java.util.Scanner;

public class N70_P1991_트리_순회하기 {
    static int[][] tree;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        sc.nextLine();
        tree = new int[26][2]; // ??
        for (int i = 0; i < n; i++) {
            String[] temp = sc.nextLine().split(" ");
            int node = temp[0].charAt(0) - 'A';
            char left = temp[1].charAt(0);
            char right = temp[2].charAt(0);

            if (left == '.') {
                tree[node][0] = -1;
            } else {
                tree[node][0] = left - 'A';
            }

            if (right == '.') {
                tree[node][1] = -1;
            } else {
                tree[node][1] = right - 'A';
            }
        }

        preOrder(0);
        System.out.println();
        inOrder(0);
        System.out.println();
        postOrder(0);
        System.out.println();
    }

    public static void preOrder(int now) {
        if (now == -1)
            return;
        System.out.print((char) (now + 'A'));
        preOrder(tree[now][0]);
        preOrder(tree[now][1]);

    }

    public static void inOrder(int now) {
        if (now == -1)
            return;
        inOrder(tree[now][0]);
        System.out.print((char) (now + 'A'));
        inOrder(tree[now][1]);

    }

    public static void postOrder(int now) {
        if (now == -1)
            return;
        postOrder(tree[now][0]);
        postOrder(tree[now][1]);
        System.out.print((char) (now + 'A'));
    }
}

Idea

  • 트리

  • 재귀

reference

Last updated