[Java] 이진트리순회(깊이우선탐색)

2025. 2. 20. 01:03·💡 Algorithm/인프런

 

Problem 💻

아래 그림과 같은 이진트리를 전위순회, 중위순회, 후위순회로 출력할 수 있게 연습해 보세요.

 

전위순회 출력 : 1 2 4 5 3 6 7

중위순회 출력 : 4 2 5 1 6 3 7

후위순회 출력 : 4 5 2 6 7 3 1

 

Solution 💡

class Node {

    int data;
    Node lt, rt;

    public Node(int val) {
        data = val;
        lt = rt = null;
    }
}

public class INF0705 {

    Node root;

    public static void main(String args[]) {
        INF0705 tree = new INF0705();
        tree.root = new Node(1);
        tree.root.lt = new Node(2);
        tree.root.rt = new Node(3);
        tree.root.lt.lt = new Node(4);
        tree.root.lt.rt = new Node(5);
        tree.root.rt.lt = new Node(6);
        tree.root.rt.rt = new Node(7);
        tree.DFS(tree.root);
    }

    public void DFS(Node root) {
        if (root == null) {
            return;
        } else {
//            System.out.print(root.data + " "); // 전위순회 1 2 4 5 3 6 7
            DFS(root.lt);
//            System.out.print(root.data + " "); // 중위순회 4 2 5 1 6 3 7
            DFS(root.rt);
            System.out.print(root.data + " "); // 후위순회 4 5 2 6 7 3 1
        }
    }
}

 

 

풀이

트리 구조를 꼭 그려보고, 전위순회/중위순회/후위순회에 대해 순서가 스택을 그려보면서 꼭 이해해 보자!

적는데 오래 걸렸지만 확실히 이해가 됐다.

 

트리
전위순회
중위순회
후위순회

저작자표시 비영리

'💡 Algorithm > 인프런' 카테고리의 다른 글

[Java] 매출액의 종류  (0) 2024.11.27
[Java] 멘토링 - Array(1, 2차원 배열)  (0) 2024.11.14
[Java] 두 배열 합치기 - Two-Pointers Algorithm  (1) 2023.10.28
[Java] 등수구하기 - Array(1, 2차원 배열)  (0) 2023.10.24
[JAVA] 임시반장 정하기 - Array(1, 2차원 배열)  (0) 2023.10.23
[JAVA] 봉우리 - Array(1, 2차원 배열)  (0) 2023.10.22
'💡 Algorithm/인프런' 카테고리의 다른 글
  • [Java] 매출액의 종류
  • [Java] 멘토링 - Array(1, 2차원 배열)
  • [Java] 두 배열 합치기 - Two-Pointers Algorithm
  • [Java] 등수구하기 - Array(1, 2차원 배열)
현주먹
현주먹
끄적끄적 개발.log
  • 현주먹
    현주먹의 개발로그
    현주먹
  • 전체
    오늘
    어제
    • 전체글 (162)
      • 👶🏻 CS (15)
        • Operating System (8)
        • Database (4)
        • Data Structure (2)
        • Software Engineering (1)
      • 💻 Dev (54)
        • Java & OOP (24)
        • Spring (4)
        • JPA (5)
        • Test Code (1)
        • Database (1)
        • JSP & Servlet (13)
        • Etc (6)
      • 💡 Algorithm (25)
        • 인프런 (9)
        • 백준 (16)
      • 🛠 DevOps & Tool (11)
        • Linux (4)
        • AWS (1)
        • Git (2)
        • Etc (4)
      • 📝 끄적끄적 (57)
        • 후기 및 회고 (5)
        • TDD, 클린 코드 with Java 17기 (3)
        • F-Lab (23)
        • 🖥️ 자바의 정석 (11)
        • 📖 Clean Code (3)
        • 항해99 코테 스터디 (11)
  • 블로그 메뉴

    • 🐈‍⬛ GitHub
    • TIL
  • 인기 글

  • 태그

    NextSTEP
    JPA
    TDD 클린 코드 with Java
    개발자취업
    C
    항해99
    F-Lab
    로또 미션
    코테스터디
    오블완
    개발자멘토링
    백준10250
    백준
    티스토리챌린지
    인프런 단어뒤집기
    에프랩
    객체지향
    ==와 equals()
    인프런 특정문자뒤집기
    코딩테스트준비
    오라클
    자바의신절판
    99클럽
    자바의정석
    f-lab 후기
    til
    jsp
    PostGreSQL함수
    에프랩 후기
    데브클럽
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
현주먹
[Java] 이진트리순회(깊이우선탐색)
상단으로

티스토리툴바