Skip to content

Commit 1c22e45

Browse files
authored
Merge pull request #32 from Data-Structure-Study/yoonexample
힙 ADT 정의 및 Impl 붙은 클래스 명 전부 수정
2 parents ec953de + 223e156 commit 1c22e45

File tree

7 files changed

+63
-32
lines changed

7 files changed

+63
-32
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package heap;
2+
3+
/**
4+
* 우선순위를 기준으로 하는 Heap 자료구조
5+
*
6+
* @param <E> 타입 파라미터
7+
*/
8+
public interface SimpleHeap<E> {
9+
10+
/**
11+
* 해당 Heap이 비어있는지 여부를 반환합니다.
12+
*
13+
* @return 해당 Heap이 비어있으면 true, 아니라면 false
14+
*/
15+
boolean isEmpty();
16+
17+
/**
18+
* 해당 Heap에 데이터를 저장합니다.
19+
*
20+
* @param data 저장할 데이터
21+
* @param priority 저장할 데이터의 우선순위(작을 수록 높은 우선순위)
22+
*/
23+
void insert(E data, int priority);
24+
25+
/**
26+
* 해당 Heap의 최우선순위 데이터를 제거합니다.
27+
*
28+
* @return 힙에 저장되어 있던 최우선순위 데이터
29+
*/
30+
E delete();
31+
}

yoonexample/src/main/java/tree/binarytree/BinaryTreeNodeImpl.java yoonexample/src/main/java/tree/binarytree/LinkedBinaryTreeNode.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package tree.binarytree;
22

3-
public class BinaryTreeNodeImpl<E> implements BinaryTreeNode<E> {
3+
public class LinkedBinaryTreeNode<E> implements BinaryTreeNode<E> {
44

55
private final E data;
66
private BinaryTreeNode<E> left;
77
private BinaryTreeNode<E> right;
88

9-
public BinaryTreeNodeImpl(E data) {
9+
public LinkedBinaryTreeNode(E data) {
1010
this.data = data;
1111
}
1212

yoonexample/src/main/java/tree/binarytree/TraversableBinaryTreeNodeImpl.java yoonexample/src/main/java/tree/binarytree/LinkedTraversableBinaryTreeNode.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package tree.binarytree;
22

3-
public class TraversableBinaryTreeNodeImpl<E> implements TraversableBinaryTreeNode<E> {
3+
public class LinkedTraversableBinaryTreeNode<E> implements TraversableBinaryTreeNode<E> {
44

55
private final E data;
66
private TraversableBinaryTreeNode<E> left;
77
private TraversableBinaryTreeNode<E> right;
88

9-
public TraversableBinaryTreeNodeImpl(E data) {
9+
public LinkedTraversableBinaryTreeNode(E data) {
1010
this.data = data;
1111
}
1212

yoonexample/src/main/java/tree/expressiontree/ExpressionTreeImpl.java yoonexample/src/main/java/tree/expressiontree/LinkedExpressionTree.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22

33
import stack.ListStack;
44
import stack.Stack;
5+
import tree.binarytree.LinkedTraversableBinaryTreeNode;
56
import tree.binarytree.TraversableBinaryTreeNode;
6-
import tree.binarytree.TraversableBinaryTreeNodeImpl;
77

8-
public class ExpressionTreeImpl implements ExpressionTree {
8+
public class LinkedExpressionTree implements ExpressionTree {
99

1010
private TraversableBinaryTreeNode<Character> root;
1111

12-
public ExpressionTreeImpl(char[] postfixExpression) {
12+
public LinkedExpressionTree(char[] postfixExpression) {
1313
Stack<TraversableBinaryTreeNode<Character>> stack = new ListStack<>();
1414

1515
for (char expr : postfixExpression) {
16-
TraversableBinaryTreeNode<Character> node = new TraversableBinaryTreeNodeImpl<>(expr);
16+
TraversableBinaryTreeNode<Character> node = new LinkedTraversableBinaryTreeNode<>(expr);
1717
if (!Character.isDigit(expr)) { // 숫자가 아니라면, 연산자임
1818
node.setRightSubTree(stack.pop());
1919
node.setLeftSubTree(stack.pop());

yoonexample/src/test/java/tree/binarytree/BinaryTreeNodeTest.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class BinaryTreeNodeTest {
1010
@Test
1111
@DisplayName("이진_트리_생성_및_초기화_테스트")
1212
void 이진_트리_생성_및_초기화_테스트() {
13-
BinaryTreeNode<Integer> bt = new BinaryTreeNodeImpl<>(1);
13+
BinaryTreeNode<Integer> bt = new LinkedBinaryTreeNode<>(1);
1414

1515
assertThat(bt).isNotNull();
1616
assertThat(bt.getData()).isEqualTo(1);
@@ -21,10 +21,10 @@ class BinaryTreeNodeTest {
2121
@Test
2222
@DisplayName("이진_트리_저장_및_출력_테스트")
2323
void 이진_트리_저장_및_출력_테스트() {
24-
BinaryTreeNode<Integer> bt1 = new BinaryTreeNodeImpl<>(1);
25-
BinaryTreeNode<Integer> bt2 = new BinaryTreeNodeImpl<>(2);
26-
BinaryTreeNode<Integer> bt3 = new BinaryTreeNodeImpl<>(3);
27-
BinaryTreeNode<Integer> bt4 = new BinaryTreeNodeImpl<>(4);
24+
BinaryTreeNode<Integer> bt1 = new LinkedBinaryTreeNode<>(1);
25+
BinaryTreeNode<Integer> bt2 = new LinkedBinaryTreeNode<>(2);
26+
BinaryTreeNode<Integer> bt3 = new LinkedBinaryTreeNode<>(3);
27+
BinaryTreeNode<Integer> bt4 = new LinkedBinaryTreeNode<>(4);
2828

2929
bt1.setLeftSubTree(bt2);
3030
bt1.setRightSubTree(bt3);

yoonexample/src/test/java/tree/binarytree/TraversableBinaryTreeNodeTest.java

+17-17
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class TraversableBinaryTreeNodeTest {
1010
@Test
1111
@DisplayName("순회_가능한_이진_트리_생성_및_초기화_테스트")
1212
void 순회_가능한_이진_트리_생성_및_초기화_테스트() {
13-
TraversableBinaryTreeNode<Integer> bt = new TraversableBinaryTreeNodeImpl<>(1);
13+
TraversableBinaryTreeNode<Integer> bt = new LinkedTraversableBinaryTreeNode<>(1);
1414

1515
assertThat(bt).isNotNull();
1616
assertThat(bt.getData()).isEqualTo(1);
@@ -21,10 +21,10 @@ class TraversableBinaryTreeNodeTest {
2121
@Test
2222
@DisplayName("순회_가능한_이진_트리_저장_및_출력_테스트")
2323
void 순회_가능한_이진_트리_저장_및_출력_테스트() {
24-
TraversableBinaryTreeNode<Integer> bt1 = new TraversableBinaryTreeNodeImpl<>(1);
25-
TraversableBinaryTreeNode<Integer> bt2 = new TraversableBinaryTreeNodeImpl<>(2);
26-
TraversableBinaryTreeNode<Integer> bt3 = new TraversableBinaryTreeNodeImpl<>(3);
27-
TraversableBinaryTreeNode<Integer> bt4 = new TraversableBinaryTreeNodeImpl<>(4);
24+
TraversableBinaryTreeNode<Integer> bt1 = new LinkedTraversableBinaryTreeNode<>(1);
25+
TraversableBinaryTreeNode<Integer> bt2 = new LinkedTraversableBinaryTreeNode<>(2);
26+
TraversableBinaryTreeNode<Integer> bt3 = new LinkedTraversableBinaryTreeNode<>(3);
27+
TraversableBinaryTreeNode<Integer> bt4 = new LinkedTraversableBinaryTreeNode<>(4);
2828

2929
bt1.setLeftSubTree(bt2);
3030
bt1.setRightSubTree(bt3);
@@ -47,10 +47,10 @@ class TraversableBinaryTreeNodeTest {
4747
@Test
4848
@DisplayName("순회_가능한_이진_트리_전위_순회_테스트")
4949
void 순회_가능한_이진_트리_전위_순회_테스트() {
50-
TraversableBinaryTreeNode<Integer> bt1 = new TraversableBinaryTreeNodeImpl<>(1);
51-
TraversableBinaryTreeNode<Integer> bt2 = new TraversableBinaryTreeNodeImpl<>(2);
52-
TraversableBinaryTreeNode<Integer> bt3 = new TraversableBinaryTreeNodeImpl<>(3);
53-
TraversableBinaryTreeNode<Integer> bt4 = new TraversableBinaryTreeNodeImpl<>(4);
50+
TraversableBinaryTreeNode<Integer> bt1 = new LinkedTraversableBinaryTreeNode<>(1);
51+
TraversableBinaryTreeNode<Integer> bt2 = new LinkedTraversableBinaryTreeNode<>(2);
52+
TraversableBinaryTreeNode<Integer> bt3 = new LinkedTraversableBinaryTreeNode<>(3);
53+
TraversableBinaryTreeNode<Integer> bt4 = new LinkedTraversableBinaryTreeNode<>(4);
5454

5555
bt1.setLeftSubTree(bt2);
5656
bt1.setRightSubTree(bt3);
@@ -66,10 +66,10 @@ class TraversableBinaryTreeNodeTest {
6666
@Test
6767
@DisplayName("순회_가능한_이진_트리_중위_순회_테스트")
6868
void 순회_가능한_이진_트리_중위_순회_테스트() {
69-
TraversableBinaryTreeNode<Integer> bt1 = new TraversableBinaryTreeNodeImpl<>(1);
70-
TraversableBinaryTreeNode<Integer> bt2 = new TraversableBinaryTreeNodeImpl<>(2);
71-
TraversableBinaryTreeNode<Integer> bt3 = new TraversableBinaryTreeNodeImpl<>(3);
72-
TraversableBinaryTreeNode<Integer> bt4 = new TraversableBinaryTreeNodeImpl<>(4);
69+
TraversableBinaryTreeNode<Integer> bt1 = new LinkedTraversableBinaryTreeNode<>(1);
70+
TraversableBinaryTreeNode<Integer> bt2 = new LinkedTraversableBinaryTreeNode<>(2);
71+
TraversableBinaryTreeNode<Integer> bt3 = new LinkedTraversableBinaryTreeNode<>(3);
72+
TraversableBinaryTreeNode<Integer> bt4 = new LinkedTraversableBinaryTreeNode<>(4);
7373

7474
bt1.setLeftSubTree(bt2);
7575
bt1.setRightSubTree(bt3);
@@ -85,10 +85,10 @@ class TraversableBinaryTreeNodeTest {
8585
@Test
8686
@DisplayName("순회_가능한_이진_트리_후위_순회_테스트")
8787
void 순회_가능한_이진_트리_후위_순회_테스트() {
88-
TraversableBinaryTreeNode<Integer> bt1 = new TraversableBinaryTreeNodeImpl<>(1);
89-
TraversableBinaryTreeNode<Integer> bt2 = new TraversableBinaryTreeNodeImpl<>(2);
90-
TraversableBinaryTreeNode<Integer> bt3 = new TraversableBinaryTreeNodeImpl<>(3);
91-
TraversableBinaryTreeNode<Integer> bt4 = new TraversableBinaryTreeNodeImpl<>(4);
88+
TraversableBinaryTreeNode<Integer> bt1 = new LinkedTraversableBinaryTreeNode<>(1);
89+
TraversableBinaryTreeNode<Integer> bt2 = new LinkedTraversableBinaryTreeNode<>(2);
90+
TraversableBinaryTreeNode<Integer> bt3 = new LinkedTraversableBinaryTreeNode<>(3);
91+
TraversableBinaryTreeNode<Integer> bt4 = new LinkedTraversableBinaryTreeNode<>(4);
9292

9393
bt1.setLeftSubTree(bt2);
9494
bt1.setRightSubTree(bt3);

yoonexample/src/test/java/tree/expressiontree/ExpressionTreeTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ void setUp() {
2222
String infixExpression = "1 + 2";
2323
char[] postfixExpression = infixToPostfix.convertInputToPostfix(infixExpression);
2424

25-
ExpressionTree expressionTree = new ExpressionTreeImpl(postfixExpression);
25+
ExpressionTree expressionTree = new LinkedExpressionTree(postfixExpression);
2626
assertThat(expressionTree.evaluateTree()).isEqualTo(3);
2727

2828
StringBuilder sb = new StringBuilder();
@@ -44,7 +44,7 @@ void setUp() {
4444
String infixExpression = "1 + 2 * 7";
4545
char[] postfixExpression = infixToPostfix.convertInputToPostfix(infixExpression);
4646

47-
ExpressionTree expressionTree = new ExpressionTreeImpl(postfixExpression);
47+
ExpressionTree expressionTree = new LinkedExpressionTree(postfixExpression);
4848
assertThat(expressionTree.evaluateTree()).isEqualTo(15);
4949

5050
StringBuilder sb = new StringBuilder();

0 commit comments

Comments
 (0)