본문 바로가기
자료구조&알고리즘/트리

트리 (소스코드)

by _din 2022. 7. 25.

 

기본 틀

public class NodeMgmt {
    Node root = null;

    public class Node {
        Node left;
        Node right;
        int value; // 노드가 갖고 있는 값

        Node(int data) {
            this.left = null;
            this.right = null;
            this.value = data;
        }
    }

		// TODO
    public boolean insertNode(int data) {
        return true;
    }

		// TODO
		public node search(int data) {
		}
}

 

이진 탐색 트리에 데이터 넣기

public boolean insertNode(int data) {
    // CASE 1 : Node가 하나도 없을 때
    if (this.root == null) {
        this.root = new Node(data);
    } else {
        // CASE 2 : Node가 하나 이상 들어가있을 때
        Node findNode = this.root;
        while(true){
            // CASE 2-1 : 현재 Node의 왼쪽에 Node가 들어가야할 때
            if(data < findNode.value){
                if(findNode.left != null){
                    findNode = findNode.left;
                } else {
                    findNode.left = new Node(data);
                    break;
                }
            // CASE 2-2 : 현재 Node의 오른쪽에 Node가 들어가야할 때
            } else {
                if (findNode.right != null) {
                    if (findNode.right != null) {
                        findNode = findNode.right;
                    } else {
                        findNode.right = new Node(data);
                        break;
                    }
                }
            }
        }
    }
    return true;
}

 

이진 탐색 트리 탐색

public Node search(int data){
    // CASE 1 : Node가 하나도 없을 때
    if(this.root == null){
        return null;
    // CASE 2 : Node가 하나 이상 있을 때
    } else {
        Node findNode = this.root;
        while (findNode != null) {
            if (findNode.value == data) {
                return findNode;
            } else if (data < findNode.value) {
                findNode = findNode.left;
            } else {
                findNode = findNode.right;
            }
        }
    }
    return null;
}

 

 

반응형

'자료구조&알고리즘 > 트리' 카테고리의 다른 글

순서 트리 탐색  (0) 2022.07.09
트리  (0) 2021.11.06

댓글