[자료구조] 트리 (Tree) - 2

zerokick·2023년 4월 18일
0

Data Structure

목록 보기
12/14
post-thumbnail

트리 (Tree) - 2


이진 탐색 트리 노드 탐색

이진 탐색 트리의 구조를 생각하며 케이스 별로 풀어나가면 비교적 쉽게 생각해낼 수 있다.
parent Node의 왼쪽 branch에는 자신보다 작은 수가 연결되어야하고, 오른쪽 branch에는 자신보다 큰 수가 연결되어야 한다.

        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) {
                    // case 2-1. 찾고 있는 Node이면 return
                    if(findNode.value == data) {
                        return findNode;
                    }
                    // case 2-2. 현재 Node의 value 보다 작을 때 (왼쪽 Child Node)
                    else if(findNode.value > data) {
                        findNode = findNode.left;
                    }
                    // case 2-3. 현재 Node의 value 보다 크거나 같을 때 (오른쪽 Child Node)
                    else {
                        findNode = findNode.right;
                    }
                }
                return null;
            }
        }
profile
Opportunities are never lost. The other fellow takes those you miss.

0개의 댓글