[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] 매출액의 종류  (1) 2024.11.27
[Java] 멘토링 - Array(1, 2차원 배열)  (0) 2024.11.14
[Java] 두 배열 합치기 - Two-Pointers Algorithm  (0) 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
  • 현주먹
    현주먹의 개발로그
    현주먹
  • 전체
    오늘
    어제
    • 전체글 (178)
      • 👶🏻 CS (15)
        • Operating System (7)
        • DB (5)
        • Data Structure (2)
        • Software Engineering (1)
      • 💻 Dev (54)
        • Java & OOP (24)
        • Spring (4)
        • DB&JPA (6)
        • Test Code (1)
        • JSP & Servlet (13)
        • Etc (6)
      • 💡 Algorithm (25)
        • 인프런 (9)
        • 백준 (16)
      • 🛠 DevOps & Tool (11)
        • Linux (4)
        • AWS (1)
        • Git (2)
        • Etc (4)
      • 📝 끄적끄적 (73)
        • 후기 및 회고 (10)
        • TDD, 클린 코드 with Java 17기 (3)
        • F-Lab (23)
        • 🖥️ 자바의 정석 (11)
        • 📖 Clean Code (3)
        • 항해99 코테 스터디 (11)
        • 📖 가상 면접 사례로 배우는 대규모 시스템 설계 .. (11)
  • 블로그 메뉴

    • 🐈‍⬛ GitHub
    • TIL repository
  • 인기 글

  • 최근 글

  • 최근 댓글

  • 태그

    인프런 특정문자뒤집기
    로또 미션
    코테스터디
    코딩테스트준비
    오라클
    에프랩 후기
    til
    JPA
    2025스프링캠프
    f-lab 후기
    99클럽
    개구리책
    개발자취업
    오블완
    자바의정석
    백준
    F-Lab
    TDD 클린 코드 with Java
    자바의신절판
    C
    ==와 equals()
    에프랩
    객체지향
    티스토리챌린지
    jsp
    jsp 2.3 웹 프로그래밍: 기초부터 중급까지
    NextSTEP
    데브클럽
    개발자멘토링
    항해99
  • hELLO· Designed By정상우.v4.10.2
현주먹
[Java] 이진트리순회(깊이우선탐색)
상단으로

티스토리툴바