/* Dette er koden fra f?rste del av lenkeliste-kurset Her bruker vi ikke en listehode-dummy, men tom liste har hode = hale = null */ public class Lenkeliste { private Node hode, hale; private int lengde; public Lenkeliste() { hode = null; hale = hode; lengde = 0; } private class Node { // indre Node-klasse Node neste; // med peker til neste node String bok; // og peker til det vi vil ta vare p? i lista Node (String bok) { this.bok = bok; } } /* Hvis vi henter ut med denne metoden, bruker vi lista som en stabel (LIFO) */ public String taUtBak() { Node n = hode; Node forrige = hode; if (hode == null) { // tom liste return null; } if (hode.neste == null) { // et element i lista hode = null; hale = null; } else { // minst 2 elementer i lista while (n.neste != null) { // m? komme oss "bakerst" forrige = n; n = n.neste; } forrige.neste = null; // fjerne pekeren til elementet vi skal ta ut hale = forrige; // flytte hale-pekeren } return n.bok; // returnere elementet i noden } // Hvis vi tar ut her, er det en k? (FIFO) public String taUtForan() { Node taUt = hode; if (taUt == null) { // lista er tom return null; } //lista er ikke tom hode = hode.neste; lengde--; return taUt.bok; } // Metoden setter inn bakerst public void settInn(String bok) { Node ny = new Node(bok); if (hode == null) { // hvis lista er tom hode = ny; hale = ny; } else { // hvis ikke setter vi inn bakerst hale.neste = ny; hale = ny; } lengde++; } public void skrivUt() { Node tmp = hode; while (tmp != null) { System.out.println(tmp.bok); tmp = tmp.neste; } } }