백준 5639: 이진 검색 트리

uni.gy·2024년 1월 1일
0

알고리즘

목록 보기
37/61

문제

풀이

  1. 이진 검색 트리 구성
    • 노드 개수를 알려주지 않아서 배열로 트리를 만들지 않고 클래스를 만들어 left, right를 만들어줌
  2. 후위순회 진행

코드

import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;

        String s=br.readLine();
        Node root=new Node(Integer.parseInt(s));
        while(true){
            s=br.readLine();
            if(s==null|| s.isEmpty())break;
            root.insert(Integer.parseInt(s));
        }
        root.postOrder();
    }

    static class Node{
        int num;
        Node left,right;

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

        public void insert(int number){
            if(number<num){
                if(left==null){
                    left=new Node(number);
                }
                else{
                    left.insert(number);
                }
            }
            else{
                if(right==null){
                    right=new Node(number);
                }
                else{
                    right.insert(number);
                }
            }
        }

        public void postOrder(){
            if(left!=null){
                left.postOrder();
            }
            if(right!=null){
                right.postOrder();
            }
            System.out.println(num);
        }
    }
}

#트리

profile
한결같이

0개의 댓글