Used a Deque for "automatic" reordering of calculated route.

planning
hummel 2025-04-08 18:54:20 +02:00
parent dbeb4418f3
commit a34d60c0d0
2 changed files with 7 additions and 8 deletions

View File

@ -9,7 +9,8 @@ public class NaviApp {
System.out.println(map.getNumberOfCities()); System.out.println(map.getNumberOfCities());
map.initializePlanning("Mannheim", "München"); for (String waypoint : map.initializePlanning("Mannheim", "Wilhelmshaven"))
System.out.println(waypoint);
} }
} }

View File

@ -2,8 +2,9 @@ package de.th_mannheim.informatik.routenplaner.domain;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.HashMap; import java.util.HashMap;
import java.util.LinkedList;
import java.util.Scanner; import java.util.Scanner;
import org.jsoup.Jsoup; import org.jsoup.Jsoup;
@ -17,7 +18,7 @@ public class Routeplaner {
loadData(); loadData();
} }
public LinkedList<String> initializePlanning(String start, String destination) { public Deque<String> initializePlanning(String start, String destination) {
cities.get(start).setDistance(0); cities.get(start).setDistance(0);
planRoute(start, destination); planRoute(start, destination);
@ -27,19 +28,16 @@ public class Routeplaner {
System.out.println("Route:"); System.out.println("Route:");
System.out.println(); System.out.println();
LinkedList<String> hops = new LinkedList<>(); Deque<String> hops = new ArrayDeque<>();
City dc = cities.get(destination); City dc = cities.get(destination);
while (true) { while (true) {
hops.add(dc.getName() + " " + dc.getDistance() + " km"); hops.push(dc.getName() + " " + dc.getDistance() + " km");
System.out.println("Stadt: " + dc.getName() + " " + dc.getDistance() + " km");
if (dc.getName().equals(start)) if (dc.getName().equals(start))
break; break;
dc = cities.get(dc.getPredecessor()); dc = cities.get(dc.getPredecessor());
System.out.println("\tVorher: " + dc.getName());
} }
return hops; return hops;