# 이진 트리 전위 순회 ## 문제 주어진 이진트리를 전위 순회하여 출력 예와 같은 결과를 만드시오. ![클라우드스터딩-자료구조-이진-트리-전위-순회](https://i.imgur.com/8cOFF4l.png) #### 전위 순회 전위 순회란 트리의 모든 노드를 방문하는 방법 중 하나이다. 전위 순회는 `현재 노드 -> 좌측 자식 -> 우측 자식` 순으로 우선 방문한다. ## 출력 예 ``` preorder: 11 22 44 55 33 66 77 ```
관련 강의로 이동

코드: java 1.8

public class Main { public static void main(String[] args) { // 트리 생성 및 구조화 MyTree tree7 = new MyTree(77, null, null); MyTree tree6 = new MyTree(66, null, null); MyTree tree5 = new MyTree(55, null, null); MyTree tree4 = new MyTree(44, null, null); MyTree tree3 = new MyTree(33, tree6, tree7); MyTree tree2 = new MyTree(22, tree4, tree5); MyTree tree1 = new MyTree(11, tree2, tree3); // 순회 출력 tree1.printPreorder(); // 전위 } } class MyTree { // 최상위 노드 private Node root; // 생성자 public MyTree(int data, MyTree leftSubtree, MyTree rightSubtree) { // 루트 노드 생성 this.root = new Node(data, null, null); // 서브 트리 연결 root.leftChild = (leftSubtree == null) ? null : leftSubtree.root; root.rightChild = (rightSubtree == null) ? null : rightSubtree.root; } // 전위 순회 public void printPreorder() { System.out.print("preorder: "); _preorder(root); // 재귀 호출 System.out.println(); } private void _preorder(Node parent) { /* 1: 재귀적 전위 순회를 구현하시오. */ } } class Node { int data; // 데이터 Node leftChild; // 왼쪽 자식 노드 Node rightChild; // 오른쪽 자식 노드 public Node(int data, Node leftChild, Node rightChild) { this.data = data; this.leftChild = leftChild; this.rightChild = rightChild; } }

입력

정답이 궁금하다면? 코드를 제출해보세요!