File tree Expand file tree Collapse file tree 1 file changed +29
-0
lines changed
yoonexample/src/main/java/graph Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Original file line number Diff line number Diff line change 3
3
import java .util .StringJoiner ;
4
4
import list .DummyDoublyLinkedList ;
5
5
import list .List ;
6
+ import queue .LinkedListQueue ;
7
+ import queue .Queue ;
6
8
import stack .ListStack ;
7
9
import stack .Stack ;
8
10
@@ -73,6 +75,33 @@ public String depthFirstSearch(Enum<?> startV) {
73
75
return sj .toString ();
74
76
}
75
77
78
+ @ Override
79
+ public String breadthFirstSearch (Enum <?> startV ) {
80
+ boolean [] visited = new boolean [vertices .length ];
81
+ StringJoiner sj = new StringJoiner (" " );
82
+ Queue <Enum <?>> vertexQueue = new LinkedListQueue <>();
83
+ vertexQueue .enqueue (startV );
84
+
85
+ while (!vertexQueue .isEmpty ()) {
86
+ Enum <?> visitV = vertexQueue .dequeue ();
87
+
88
+ if (visitVertex (visited , visitV )) {
89
+ sj .add (visitV .toString ());
90
+ }
91
+
92
+ List <Enum <?>> vertexList = vertices [visitV .ordinal ()];
93
+ for (int i = 0 ; i < vertexList .size (); i ++) {
94
+ Enum <?> vertex = vertexList .get (i );
95
+ if (!visited [vertex .ordinal ()]) {
96
+ vertexQueue .enqueue (vertex );
97
+ }
98
+ }
99
+
100
+ }
101
+
102
+ return sj .toString ();
103
+ }
104
+
76
105
private boolean visitVertex (boolean [] visited , Enum <?> vertex ) {
77
106
if (visited [vertex .ordinal ()]) {
78
107
return false ;
You can’t perform that action at this time.
0 commit comments