public class Rekkehus { private int antall = 0; private Hus foerste, siste = null; public void leggTil(E element) { // legger til p? slutten av lista Hus hus = new Hus(element); if (antall == 0) { // sjekker om lista er tom, da er det enkelt foerste = hus; siste = hus; } else { siste.settNeste(hus); hus.settForrige(siste); siste = hus; } antall++; } public E fjern() { // fjerner fra starten av lista E data = null; if (antall == 1) { data = foerste.hentData(); foerste = siste = null; antall--; } else if (antall > 1) { data = foerste.hentData(); foerste = foerste.hentNeste(); foerste.settForrige(null); antall--; } return data; } public String toString() { // returnerer info om rekken med hus String streng = "Rekken best?r av f?lgende hus: \n"; if (antall == 0) { streng += "Ingen hus"; } else { Hus peker = foerste; while (peker != null) { streng += peker.hentInfo() + "\n"; peker = peker.hentNeste(); } } return streng; } // indre klasse som skal holde p? et element, vet ikke hvilken type protected class Hus { // ofte kalt Node Hus neste, forrige = null; E data; public Hus(E data) { // E kan v?re hvilken som helst type this.data = data; } public E hentData() { return data; } public void settNeste(Hus hus) { this.neste = hus; } public void settForrige(Hus hus) { this.forrige = hus; } public Hus hentNeste() { return neste; } public Hus hentForrige() { return forrige; } public String hentInfo() { String streng = "Hus: "; streng += data; return streng; } } }