JX405기_비트/자료구조(Data Structure)

Day08-1 자료구조 이진트리

_하루살이_ 2023. 2. 2. 16:53

Node

package day0118;

public class Node {
    public int value;
    public Node left;
    public Node right;

}

Ex01BinaryTree

package day0118;

public class Ex01BinaryTree {
    static int[] array = {3, 7, 1, 2, 4, 0};
    static int currentIndex = 0;
    public static void main(String[] args) {
        Node zero = new Node();
        zero.value = array[currentIndex++];
        for (int i = 1; i < array.length; i++){
            insert(zero, array[i]);
        }

        System.out.println(zero.value); // 1차
        System.out.println(zero.left.value); // 2차
        System.out.println(zero.right.value);
        System.out.println(zero.left.left.value); // 3차
        System.out.println(zero.left.right.value);
        System.out.println(zero.right.left.value);

    }
    public static void insert(Node parent, int value){
        if (parent.value < value){
            if (parent.right == null){
                parent.right = createNode(value); // 오른쪽에 노드 생성
            } else {
                insert(parent.right, value); // 재귀함수 호출 오른쪽의 노드 값이 부모값으로 변경
            }
        } else {
            if (parent.left == null){
                parent.left = createNode(value); // 왼쪽에 노드 생성
            } else {
                insert(parent.left, value); // 재귀함수 호출 왼쪽의 노드 값이 부모 값으로 변경
            }
        }
    }

    public static Node createNode(int value){
        Node n = new Node();
        n.value = value;

        return n;
    }
}