Skip to content

Commit c0bf381

Browse files
authored
Merge pull request #11 from rabestro/develop
Fixed an error
2 parents da81210 + 1f0a79f commit c0bf381

File tree

3 files changed

+5
-9
lines changed

3 files changed

+5
-9
lines changed

docs/Graphs.pptx

3.73 KB
Binary file not shown.

src/main/java/algorithm/BreadthFirstSearch.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public List<T> findPath(Graph<T> graph, T source, T target) {
3232
queue.addLast(it);
3333
});
3434
}
35-
return new LinkedList<>();
35+
return List.of();
3636
}
3737

3838
}

src/main/java/algorithm/DijkstrasAlgorithm.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
package algorithm;
22

33
import java.util.HashMap;
4-
import java.util.HashSet;
54
import java.util.LinkedList;
65
import java.util.List;
76
import java.util.Objects;
8-
import java.util.stream.Stream;
7+
8+
import static java.util.stream.Stream.iterate;
99

1010
public class DijkstrasAlgorithm<T> implements SearchAlgorithm<T> {
1111

1212
@Override
1313
public List<T> findPath(Graph<T> graph, T source, T target) {
1414
final var queue = new LinkedList<T>();
15-
final var visited = new HashSet<T>();
1615
final var distances = new HashMap<T, Double>();
1716
final var previous = new HashMap<T, T>();
1817
queue.add(source);
@@ -23,19 +22,16 @@ public List<T> findPath(Graph<T> graph, T source, T target) {
2322
final var edges = graph.nodes().get(prev);
2423
edges.forEach((node, time) -> {
2524
final var distance = distances.get(prev) + time.doubleValue();
26-
if (!visited.contains(node)) {
27-
queue.addLast(node);
28-
visited.add(node);
29-
}
3025
if (distance < distances.getOrDefault(node, Double.MAX_VALUE)) {
3126
previous.put(node, prev);
3227
distances.put(node, distance);
28+
queue.addLast(node);
3329
}
3430
});
3531
}
3632

3733
final var path = new LinkedList<T>();
38-
Stream.iterate(target, Objects::nonNull, previous::get).forEach(path::addFirst);
34+
iterate(target, Objects::nonNull, previous::get).forEach(path::addFirst);
3935
return path;
4036
}
4137

0 commit comments

Comments
 (0)