Gelinkte lijsten zijn basis data structuren in de programmering . Bijna elke programmeertaal heeft een soort van gelinkte lijst geïmplementeerd als een bibliotheek , evenals vele manieren om gelinkte lijsten te construeren . Java is geen uitzondering . En terwijl Java kan een gelinkte lijst te implementeren , het helpt voor programmeurs om te weten hoe gelinkte lijsten werken , en wat ze doen . Op die manier kunnen programmeurs begrijpen hoe ze te tweaken voor bepaalde situaties of te optimaliseren voor bepaalde systemen . Knooppunten Ieder gekoppelde lijst heeft als onderdeel van een "knooppunt ", die zowel de gegevens die worden opgeslagen en een variabele die verwijst naar het volgende item in de lijst bevat . Sommige complexe lijsten bevatten knooppunten die verwijzen meerdere andere knooppunten , maar de basislijst , de referentiepunten alleen de volgende knoop in de lijst . . De gegevens opgeslagen in de lijst kan worden van elke soort Linked List Class In Java , zal een gelinkte lijst bevat ten minste twee klassen : de belangrijkste lijst klasse , en een knooppunt klasse . Het volgende voorbeeld illustreert dit verschil . In deze lijst , het knooppunt klasse woont, een eigen lid van de lijst klasse , zodat alleen de lijst nodes kunnen manipuleren . { } Private static class Node { int gegevens; ; Node volgende } < br public class llist : Opdat een gebruiker om elementen toe te voegen of te verwijderen , moeten ze gaan door de klasse -interface > invoegen Into the list Elke lijst zal een methode voor het invoegen . Deze methode zal een gebruiker waarde, in dit geval een geheel getal , en plaats een knoop die deze waarde langs de lijst . Dit betekent ook dat elke lijst een eenvoudige variabele die een hoofdnode zal vertegenwoordigen zal bevatten , zodat de lijst weet wanneer deze leeg is of wanneer de gebruiker is aan het begin van de lijst : Node hoofd = null ; public void insertNode ( int value ) { Node temp = new Node ( ) op ; new.data = waarde ; als ( hoofd == null ) { head = temp ; temp.next = null ; } else { Node current = head ; terwijl ( current.next = null ) { huidige == current.next ; } current.next = temp ; temp.next = null; } verwijderen uit de lijst verwijderen uit de lijst is een beetje ingewikkelder . In een eenvoudige lijst , zal de gebruiker alleen maar toe te voegen aan het einde van de lijst . Met het verwijderen , kan ze een knooppunt van het midden te verwijderen . In dit geval moet de programmeur ervoor zorgen dat de lijst blijft coherent door ervoor te zorgen het knooppunt voorafgaand aan de verwijderde knooppunt verwijst naar het knooppunt na het verwijderde knoop : public void removeNode ( int value ) { als ( hoofd! = null ) { Node stroom = head.next ; Node trail = hoofd ; terwijl ( current = null && current.data = waarde ) { trail = stroom; ! stroom = current.next ; } if ( current.data == waarde ) { trail.next = current.next ; stroom = null; return ; } else if ( huidige == null ) { System.out.println ( " Element niet in lijst "); return ; } } }
|