Skip to content

Commit 285b939

Browse files
committed
feat: 순회가 가능한 이진트리 구현
1 parent 4dfbfb3 commit 285b939

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
package tree.binarytree;
2+
3+
public class TraversableBinaryTreeNodeImpl<E> implements TraversableBinaryTreeNode<E> {
4+
5+
private final E data;
6+
private TraversableBinaryTreeNode<E> left;
7+
private TraversableBinaryTreeNode<E> right;
8+
9+
public TraversableBinaryTreeNodeImpl(E data) {
10+
this.data = data;
11+
}
12+
13+
@Override
14+
public E getData() {
15+
return this.data;
16+
}
17+
18+
@Override
19+
public TraversableBinaryTreeNode<E> getLeftSubTree() {
20+
return this.left;
21+
}
22+
23+
@Override
24+
public void setLeftSubTree(TraversableBinaryTreeNode<E> subTree) {
25+
this.left = subTree;
26+
}
27+
28+
@Override
29+
public TraversableBinaryTreeNode<E> getRightSubTree() {
30+
return this.right;
31+
}
32+
33+
@Override
34+
public void setRightSubTree(TraversableBinaryTreeNode<E> subTree) {
35+
this.right = subTree;
36+
}
37+
38+
@Override
39+
public void preorderTraverse(StringBuilder sb) {
40+
sb.append(this.data.toString());
41+
if (this.left != null) {
42+
this.left.preorderTraverse(sb);
43+
}
44+
if (this.right != null) {
45+
this.right.preorderTraverse(sb);
46+
}
47+
}
48+
49+
@Override
50+
public void inorderTraverse(StringBuilder sb) {
51+
if (this.left != null) {
52+
this.left.inorderTraverse(sb);
53+
}
54+
sb.append(this.data.toString());
55+
if (this.right != null) {
56+
this.right.inorderTraverse(sb);
57+
}
58+
}
59+
60+
@Override
61+
public void postorderTraverse(StringBuilder sb) {
62+
if (this.left != null) {
63+
this.left.postorderTraverse(sb);
64+
}
65+
if (this.right != null) {
66+
this.right.postorderTraverse(sb);
67+
}
68+
sb.append(this.data.toString());
69+
}
70+
}

0 commit comments

Comments
 (0)