// Klassen Lenkeliste // INTERN KLASSE // Her er Node-klassen lagt inn som en indre klasse i Lenkeliste. Den er satt til aa vaere privat, // saa det er kun inni denne klassen vi vet om og kan bruke denne Node-klassen // METODER FJERNET I NODE-KLASSEN // Metodene for aa hente/sette verdiene i Nodene er fjernet her, saa for aa hente/sette verdiene // saa akksesserer vi dem heller direkte: node1.data = "Hei" // Dette gjoer koden enklere aa skrive og lese, og bryter ikke saa veldig med prinsippen om // inklapsling, ettersom Node er en indre klasse // HVA GJØR LENKELISTE-KLASSEN? // Lenkeliste-klassen haandterer all oppretting og endring av Node-objekter, slik at vi i // hovedprogrammet kun trenger aa bruke de offentlige metodene for aa f.eks. legge til eller // skrive ut elementene i kjeden/lenkelisten public class Lenkeliste { private Node start; public void add(String value) { // Putter verdien som skal legges inn i et nytt Node-objekt Node newNode = new Node(value); // Dette er foerste noden som legges til i kjeden if (start == null) { start = newNode; } // Det ligger allerede noder i kjeden, så vi må lete oss frem til // den siste og legge inn den nye noden der else { Node temp = start; // Faar temp til aa peke paa den siste noden i kjeden while (temp.next != null) { // Her maa vi bruke 'temp.next != null' slik at vi stopper // while-løkken foer temp settes til å være null temp = temp.next; } // Temp peker naa paa den siste noden, og vi kan putte inn den nye temp.next = newNode; } } @Override public String toString() { String s = ""; Node temp = start; while (temp != null) { // Her brukes 'temp != null' siden vi har lyst til å få // med også den siste noden i stringen s += "[" + temp.data + "] -> "; temp = temp.next; } return s + "null"; } private class Node { Node next = null; // starter som null String data; public Node(String data) { this.data = data; } } } class TestLenkeliste { public static void main(String[] args) { // Gjoer akkurat det samme som hovedprogrammet i 'Node.java', men koden her er mye enklere! Lenkeliste l = new Lenkeliste(); l.add("Hei"); l.add("paa"); l.add("deg!"); System.out.println(l); } }