// Dobbellenket liste, med en peker til f?rste objekt public class Sparegris { private int antall = 0; private Seddel foerst = null; private class Seddel { Seddel neste, forrige = null; private int verdi; public Seddel(int v) { verdi = v; } public int hentVerdi() { return verdi; } } public int hentAntall() { return antall; } // Legger til f?rst i lenkelista public void leggTilFoerst(int verdi) { Seddel ny = new Seddel(verdi); // Invariant: Lenkelista er tom if (antall == 0) { foerst = ny; antall++; return; } // Invariant: Lenkelista er ikke tom foerst.forrige = ny; ny.neste = foerst; foerst = ny; antall++; } public void leggTilSist(int verdi) { Seddel ny = new Seddel(verdi); // Invariant: Lenkelista er tom if (antall == 0) { foerst = ny; antall++; return; } // Invariant: Lenkelista er ikke tom Seddel peker = foerst; while (peker.neste != null) { peker = peker.neste; } peker.neste = ny; ny.forrige = peker; antall++; } public int fjernFoerst() { // IV: Lenkelista er tom if (antall == 0) { System.out.println("Ingen sedler"); return 0; } // IV: Lenkelista har ett element if (antall == 1) { Seddel midlertidig = foerst; foerst = null; antall--; return midlertidig.hentVerdi(); } // IV: Ellers int verdi = foerst.hentVerdi(); foerst = foerst.neste; foerst.forrige = null; antall--; return verdi; } public int fjernSist() { // IV: Lenkelista er tom if (antall == 0) { System.out.println("Ingen sedler"); return 0; } // IV: Lenkelista har ett element if (antall == 1) { Seddel midlertidig = foerst; foerst = null; antall--; return midlertidig.hentVerdi(); } Seddel peker = foerst; while (peker.neste != null) { peker = peker.neste; } int verdi = peker.hentVerdi(); peker = peker.forrige; peker.neste = null; antall--; return verdi; } public int hentFoerst() { if (foerst != null) { return foerst.hentVerdi(); } return 0; } public int hentSist() { if (foerst == null) { return 0; } if (antall == 1) { return foerst.hentVerdi(); } Seddel peker = foerst; while (peker.neste != null) { peker = peker.neste; } return peker.hentVerdi(); } @Override public String toString() { Seddel peker = foerst; int sum = 0; while (peker != null) { sum += peker.hentVerdi(); peker = peker.neste; } return "Sum: " + sum; } }