// 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 class Lenkeliste { private Node start; public void add(T value) { // Putter verdien som skal legges inn i et nytt Node-objekt Node nyNode = new Node(value); // Dette er foerste noden som legges til i kjeden if (start == null) { start = nyNode; } // 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.neste != null) { // Her maa vi bruke 'temp.next != null' slik at vi stopper // while-løkken foer temp settes til å være null temp = temp.neste; } // Temp peker naa paa den siste noden i lenkelista, og vi kan putte inn den nye temp.neste = nyNode; } } @Override public String toString() { String s = ""; // Skrive ut alle elementene 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.toString() + " -> "; temp = temp.neste; } return s + " *null*"; } // Indre klasse, "hjelpeklasse" class Node { T data; Node neste; public Node(T d) { data = d; } } } class Maain { // Gjoer akkurat det samme som hovedprogrammet i 'Node.java', men koden her er // mye enklere! public static void main(String[] args) { Lenkeliste l = new Lenkeliste<>(); l.add("Hei"); l.add("paa"); l.add("deg!"); System.out.println(l); } }