Oppgave 2
public String toString() { StringJoiner s = new StringJoiner(", ", "[", "]"); Node<T> p = fra; for (int i = 0; i < antall; i++, p = p.neste) { s.add(p.verdi.toString()); } return s.toString(); }
Oppgave 3
public void nullstill() // tar vare på en del av nodene { Node<T> p = fra; for (int i = 1; i < START_STØRRELSE; i++) { p.verdi = null; if (p.neste == fra) break; p = p.neste; } Node<T> q = p.neste; while (q != fra) { q.verdi = null; q = q.neste; } p.verdi = null; til = p.neste = fra; antall = 0; }
Oppgave 4
public static <T> void sorter(Kø<T> kø, Stakk<T> stakk, Comparator<? super T> c) { int n = kø.antall(); while (n > 0) { stakk.leggInn(kø.taUt()); // kandidat for å være den største for (int i = 1; i < n; i++) { T verdi = kø.taUt(); if (c.compare(verdi, stakk.kikk()) > 0) { kø.leggInn(stakk.taUt()); // fant en som var større - den stakk.leggInn(verdi); // legges øverst på stakken } else { kø.leggInn(verdi); } } n--; } while (!stakk.tom()) kø.leggInn(stakk.taUt()); // flytter fra stakk til kø }