Skip to content

Commit c3eb810

Browse files
committed
feat: 가중치 출력 기능 구현
테스트 코드가 힙 기반으로 출력하는 것이어서 변경하였습니다.
1 parent d4a4c9d commit c3eb810

File tree

2 files changed

+26
-9
lines changed

2 files changed

+26
-9
lines changed

Diff for: yoonexample/src/main/java/graph/ListWeightGraph.java

+18-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,20 @@ public void addEdge(Enum<?> fromV, Enum<?> toV, int weight) {
3939

4040
@Override
4141
public String showGraphEdgeWeightInfo() {
42-
return null;
42+
List<WeightEdge> weightEdgeList = new DummyDoublyLinkedList<>();
43+
StringBuilder sb = new StringBuilder();
44+
45+
while (!this.edgePriorityQueue.isEmpty()) {
46+
WeightEdge edge = this.edgePriorityQueue.dequeue();
47+
weightEdgeList.insert(edge);
48+
sb.append(edge.showEdgeInfo()).append("\n");
49+
}
50+
51+
for (int i = 0; i < weightEdgeList.size(); i++) {
52+
this.edgePriorityQueue.enqueue(weightEdgeList.get(i));
53+
}
54+
55+
return sb.toString();
4356
}
4457

4558
@Override
@@ -144,5 +157,9 @@ public WeightEdge(int weight, Enum<?> fromVertex, Enum<?> toVertex) {
144157
this.fromVertex = fromVertex;
145158
this.toVertex = toVertex;
146159
}
160+
161+
private String showEdgeInfo() {
162+
return "(" + fromVertex.toString() + "-" + toVertex.toString() + "), " + "w: " + weight;
163+
}
147164
}
148165
}

Diff for: yoonexample/src/test/java/graph/WeightedGraphTest.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -39,46 +39,46 @@ void setUp() {
3939
graph.addEdge(Point.A, Point.C, 12);
4040
assertThat(graph.showGraphEdgeInfo()).isEqualTo("A: B C\nB: A C\nC: B A\n");
4141
assertThat(graph.showGraphEdgeWeightInfo())
42-
.isEqualTo("(A-B), w: 9\n(B-C), w: 2\n(A-C), w: 12\n");
42+
.isEqualTo("(A-C), w: 12\n(A-B), w: 9\n(B-C), w: 2\n");
4343

4444
graph.addEdge(Point.A, Point.D, 8);
4545
assertThat(graph.showGraphEdgeInfo()).isEqualTo("A: B C D\nB: A C\nC: B A\nD: A\n");
4646
assertThat(graph.showGraphEdgeWeightInfo())
47-
.isEqualTo("(A-B), w: 9\n(B-C), w: 2\n(A-C), w: 12\n(A-D), w: 8\n");
47+
.isEqualTo("(A-C), w: 12\n(A-B), w: 9\n(A-D), w: 8\n(B-C), w: 2\n");
4848

4949
graph.addEdge(Point.D, Point.C, 6);
5050
assertThat(graph.showGraphEdgeInfo()).isEqualTo("A: B C D\nB: A C\nC: B A D\nD: A C\n");
5151
assertThat(graph.showGraphEdgeWeightInfo())
52-
.isEqualTo("(A-B), w: 9\n(B-C), w: 2\n(A-C), w: 12\n(A-D), w: 8\n(D-C), w: 6\n");
52+
.isEqualTo("(A-C), w: 12\n(A-B), w: 9\n(A-D), w: 8\n(D-C), w: 6\n(B-C), w: 2\n");
5353

5454
graph.addEdge(Point.A, Point.F, 11);
5555
assertThat(graph.showGraphEdgeInfo()).isEqualTo("A: B C D F\nB: A C\nC: B A D\nD: A C\nF: A\n");
5656
assertThat(graph.showGraphEdgeWeightInfo()).isEqualTo(
57-
"(A-B), w: 9\n(B-C), w: 2\n(A-C), w: 12\n(A-D), w: 8\n(D-C), w: 6\n(A-F), w: 11\n");
57+
"(A-C), w: 12\n(A-F), w: 11\n(A-B), w: 9\n(A-D), w: 8\n(D-C), w: 6\n(B-C), w: 2\n");
5858

5959
graph.addEdge(Point.F, Point.D, 4);
6060
assertThat(graph.showGraphEdgeInfo())
6161
.isEqualTo("A: B C D F\nB: A C\nC: B A D\nD: A C F\nF: A D\n");
6262
assertThat(graph.showGraphEdgeWeightInfo()).isEqualTo(
63-
"(A-B), w: 9\n(B-C), w: 2\n(A-C), w: 12\n(A-D), w: 8\n(D-C), w: 6\n(A-F), w: 11\n(F-D), w: 4\n");
63+
"(A-C), w: 12\n(A-F), w: 11\n(A-B), w: 9\n(A-D), w: 8\n(D-C), w: 6\n(F-D), w: 4\n(B-C), w: 2\n");
6464

6565
graph.addEdge(Point.D, Point.E, 3);
6666
assertThat(graph.showGraphEdgeInfo())
6767
.isEqualTo("A: B C D F\nB: A C\nC: B A D\nD: A C F E\nE: D\nF: A D\n");
6868
assertThat(graph.showGraphEdgeWeightInfo()).isEqualTo(
69-
"(A-B), w: 9\n(B-C), w: 2\n(A-C), w: 12\n(A-D), w: 8\n(D-C), w: 6\n(A-F), w: 11\n(F-D), w: 4\n(D-E), w: 3\n");
69+
"(A-C), w: 12\n(A-F), w: 11\n(A-B), w: 9\n(A-D), w: 8\n(D-C), w: 6\n(F-D), w: 4\n(D-E), w: 3\n(B-C), w: 2\n");
7070

7171
graph.addEdge(Point.E, Point.C, 7);
7272
assertThat(graph.showGraphEdgeInfo())
7373
.isEqualTo("A: B C D F\nB: A C\nC: B A D E\nD: A C F E\nE: D C\nF: A D\n");
7474
assertThat(graph.showGraphEdgeWeightInfo()).isEqualTo(
75-
"(A-B), w: 9\n(B-C), w: 2\n(A-C), w: 12\n(A-D), w: 8\n(D-C), w: 6\n(A-F), w: 11\n(F-D), w: 4\n(D-E), w: 3\n(E-C), w: 7\n");
75+
"(A-C), w: 12\n(A-F), w: 11\n(A-B), w: 9\n(A-D), w: 8\n(E-C), w: 7\n(D-C), w: 6\n(F-D), w: 4\n(D-E), w: 3\n(B-C), w: 2\n");
7676

7777
graph.addEdge(Point.F, Point.E, 13);
7878
assertThat(graph.showGraphEdgeInfo())
7979
.isEqualTo("A: B C D F\nB: A C\nC: B A D E\nD: A C F E\nE: D C F\nF: A D E\n");
8080
assertThat(graph.showGraphEdgeWeightInfo()).isEqualTo(
81-
"(A-B), w: 9\n(B-C), w: 2\n(A-C), w: 12\n(A-D), w: 8\n(D-C), w: 6\n(A-F), w: 11\n(F-D), w: 4\n(D-E), w: 3\n(E-C), w: 7\n(F-E), w: 13\n");
81+
"(F-E), w: 13\n(A-C), w: 12\n(A-F), w: 11\n(A-B), w: 9\n(A-D), w: 8\n(E-C), w: 7\n(D-C), w: 6\n(F-D), w: 4\n(D-E), w: 3\n(B-C), w: 2\n");
8282
}
8383

8484
@Test

0 commit comments

Comments
 (0)