Oppgave 2
String url = "https://www.cs.hioa.no/~ulfu/appolonius/kap11/2/vgraf1.txt"; VMGraf vgraf = new VMGraf(url); String start = "A"; vgraf.kortestVeiFra(start); for (String node : vgraf.nodenavn()) { StringJoiner sj = new StringJoiner(""); sj.add("Vei fra ").add(start).add(" til ") .add(node).add(": ").add(vgraf.veiTil(node)); System.out.println(sj.toString()); }
Oppgave 3
Det må stå: public final class VMGraf implements Iterable<String>
øverst.
Legg så flg. kode (indre klasse og metode) inn i VMGraf:
private class MGrafIterator implements Iterator<String> // hører til VMGraf { private int denne = 0; // instansvariabel public boolean hasNext() // sjekker om det er flere igjen { return denne < antall; // sjekker verdien til denne } public String next() // returnerer aktuell verdi { if (!hasNext()) throw new NoSuchElementException("Tomt eller ingen verdier igjen!"); return snavn[denne++]; } } // MGrafIterator public Iterator<String> iterator() { return new MGrafIterator(); }
Oppgave 4
public void skrivGraf(String filnavn) throws IOException { PrintWriter ut = new PrintWriter(filnavn); for (int i = 0; i < antall; i++) { ut.print(snavn[i]); int rad = indeks[i]; for (int kolonne = 0; kolonne < antall; kolonne++) { byte vekt = graf[rad][kolonne]; if (vekt != IKKE_KANT) ut.print(" " + navn[kolonne] + " " + vekt); } ut.println(); } ut.close(); }