일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 리액트 훅
- 디자인 패턴
- 컴퓨터 네트워크
- 장고
- design pattern
- 자바 공부
- 백준
- 코딩테스트 고득점 Kit 완전탐색
- react
- websocket
- 프로그래머스 자바
- react firebase
- NextJS
- useState
- 자바
- 자바스크립트
- useEffect
- React JS
- 프로그래밍 언어론
- codesandbox
- 코틀린
- 프로그래머스 완전탐색
- Java
- vanillaJS
- 리액트
- 코딩테스트 고득점 Kit
- react hook
- 프로그래머스
- JavaScript
- 데이터모델링과마이닝
Archives
- Today
- Total
기록하는 개발자
[백준][JAVA] 1991 : 트리 순회 본문
728x90
https://www.acmicpc.net/problem/1991
import java.util.*;
class Node {
char data;
Node left;
Node right;
Node(char data){
this.data = data;
}
}
public class Main {
public Node root;
public void createNode(char data, char leftData, char rightData) {
if(root == null) {
root = new Node(data);
if(leftData != '.') root.left = new Node(leftData);
if(rightData != '.') root.right = new Node(rightData);
}
else searchNode(root, data, leftData, rightData);
}
public void searchNode(Node node, char data, char leftData, char rightData) {
if(node == null) return;
else if(node.data == data) {
if(leftData != '.') node.left = new Node(leftData);
if(rightData != '.') node.right = new Node(rightData);
}
else {
searchNode(node.left, data, leftData, rightData);
searchNode(node.right, data, leftData, rightData);
}
}
public void preOrder(Node node) { // root-left-right
if(node != null) {
System.out.print(node.data);
if(node.left != null) preOrder(node.left);
if(node.right != null) preOrder(node.right);
}
}
public void inOrder(Node node) { // left-root-right
if(node != null) {
if(node.left != null) inOrder(node.left);
System.out.print(node.data);
if(node.right != null) inOrder(node.right);
}
}
public void postOrder(Node node) { // left-right-root
if(node != null) {
if(node.left != null) postOrder(node.left);
if(node.right != null) postOrder(node.right);
System.out.print(node.data);
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
Main m = new Main();
for (int i = 0; i < n; i++)
m.createNode(sc.next().charAt(0), sc.next().charAt(0), sc.next().charAt(0));
m.preOrder(m.root);
System.out.println();
m.inOrder(m.root);
System.out.println();
m.postOrder(m.root);
}
}
728x90
'Algorithm' 카테고리의 다른 글
[백준][JAVA] 11725 : 트리의 부모 찾기 (0) | 2021.07.23 |
---|---|
[백준][JAVA] 11286 : 절댓값 힙 (0) | 2021.07.23 |
[백준][JAVA] 11279 : 최대 힙 (0) | 2021.07.21 |
[백준][JAVA] 1874 : 최소 힙 (0) | 2021.07.21 |
[백준][JAVA] 1874 : 스택 수열 (0) | 2021.07.11 |