import java.util.Iterator; import java.util.NoSuchElementException; public class Lenkeliste implements Iterable{ private Node start, slutt; private int storrelse = 0; private class Node { Node neste; T data; Node(T data){ this.data = data; } } public int storrelse() { return storrelse; } public boolean erTom() { return start == null; } public void leggTil(T d) { Node nyNode = new Node(d); storrelse++; if (erTom()){ start = nyNode; } else { slutt.neste = nyNode; } slutt = nyNode; } public void fjernAlt() { storrelse = 0; start = null; slutt = null; } public T fjern(){ storrelse--; Node returNode = start; start = start.neste; return returNode.data; } @Override public String toString() { int plass = 0; String string = ""; Node p = start; while(p != null){ string += "\nPlass " + plass + ": " + p.data; plass++; p = p.neste; } return string; } @Override public Iterator iterator() { return new LenkelisteIterator(); } private class LenkelisteIterator implements Iterator { Node denne = start; @Override public boolean hasNext() { return denne != null; } @Override public T next() { if (denne == null) throw new NoSuchElementException("next"); Node p = denne; denne = denne.neste; return p.data; } } }