<Algorithm> 43. 1991번 트리 순회
by BFine반응형
1. 1991번 트리 순회
기본 이진트리 알고리즘, preorder ( Root -> L -> R ) inorder ( L -> Root -> R ) postorder ( L -> R -> Root )
배열의 인덱스를 이용해서 트리를 생성하였다.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br =new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); char temp[][] = new char[N][3]; for(int i = 0; i < N; i ++) { st = new StringTokenizer(br.readLine()); for(int j = 0; j < 3; j++) { temp[i][j] = st.nextToken().charAt(0); } } Tree tree[] = new Tree[100]; for(int i = 0; i < N; i ++) { tree[temp[i][0]-'0'] = new Tree(temp[i][0],null,null); } for(int i = 0; i < N; i ++) { tree[temp[i][0]-'0'].left = ( temp[i][1] == '.') ? null : tree[temp[i][1]-'0']; tree[temp[i][0]-'0'].right = ( temp[i][2] == '.') ? null : tree[temp[i][2]-'0']; } Tree root = tree[temp[0][0]-'0']; pre(root); System.out.println(); in(root); System.out.println(); post(root); } private static void pre(Tree root) { if(root != null) { System.out.print(root.name); pre(root.left); pre(root.right); } } private static void in(Tree root) { if(root != null) { in(root.left); System.out.print(root.name); in(root.right); } } private static void post(Tree root) { if(root != null) { post(root.left); post(root.right); System.out.print(root.name); } } } class Tree{ char name; Tree left; Tree right; public Tree() { super(); } public Tree(char name,Tree left, Tree right) { super(); this.name = name; this.left = left; this.right = right; } } | cs |
반응형
'공부(2018~2019) - 스킨변경전 > Algorithm' 카테고리의 다른 글
<Algorithm> 45. 14502번 연구소 (0) | 2018.08.10 |
---|---|
<Algorithm> 44. 5014번 스타트링크 (0) | 2018.08.10 |
<Algorithm> 42. 2589번 보물섬 (0) | 2018.08.09 |
<Algorithm> 41. 2468번 안전영역 (0) | 2018.08.09 |
<Algorithm> 40. 11758번 CCW (0) | 2018.08.09 |
블로그의 정보
57개월 BackEnd
BFine