import java.util.Scanner;
import java.io.File;
class Trikkelinje {
private int linjenummer;
private String endeHoldeplass;
private Holdeplass forste;
private Holdeplass siste;
public Trikkelinje(String filnavn){
lesFraFil(filnavn);
}
public void lesFraFil(String filnavn){
Scanner sc = null;
try {
sc = new Scanner(new File(filnavn));
} catch (Exception e){
System.out.println("Kunne ikke lese fra fil");
return;
//System.exit(1);
// vil ikke n?dvendigvis avslutte programmet
}
String[] info = sc.nextLine().split(";");
linjenummer = Integer.parseInt(info[0]);
endeHoldeplass = info[1];
Holdeplass forrige = null;
while (sc.hasNextLine()){
String navn = sc.nextLine();
Holdeplass ny = new Holdeplass(navn);
if (forste == null){
forste = ny;
}
if (forrige != null){
forrige.neste = ny;
ny.forrige = forrige;
}
forrige = ny;
}
siste = forrige; // etter while l?kke
}
public String skrivUtRute(String fra, String til){
// navn fra, navn til
String rute = "";
Holdeplass peker = forste;
int antall = 0;
// finne "fra" Holdeplass
while (peker != null){
if (peker.hentNavn().equals(fra)){
while (peker != null){
// finne "til" Holdeplass
if (peker.hentNavn().equals(til)){
return "Fra " + fra + "("+antall+" stopp):" + rute;
}
peker = peker.neste;
rute += " -> " + peker.hentNavn();
antall++;
}
}
peker = peker.neste;
}
return "Fant ikke holdeplass";
}
public int antallStoppFra(Holdeplass fra, Holdeplass til, int antall){
if (fra == null){ // slutten
return antall;
}
if (fra.hentNavn().equals(til.hentNavn())){
return antall;
}
// fra = fra.neste - leter fortsatt etter "til"
return antallStoppFra(fra.neste, til, antall+1);
}
public Holdeplass hentHoldeplass(String navn){
Holdeplass peker = forste;
while (peker != null){
if (peker.hentNavn().equals(navn)){
return peker; // Holdeplass objekt
}
peker = peker.neste;
}
return null; // fant ikke holdeplass
}
public void settForste(Holdeplass holdeplass){
forste = holdeplass;
}
public Holdeplass hentForste(){
return forste;
}
}