Skip to main content

Datenstrukturen und Algorithmen

Hier gibt es einen Einstieg in die beiden Themen mit eigener Implementierung einer Single Linked List.

Elemente hinzufügen

Die Funktion, mit der ein Element an unsere Liste angehängt wird, soll “wertHinzufuegen” heißen. Sie soll als Parameter ein Verweis auf eine Liste und den einzufügenden Wert bekommen. Zurückgeben wird sie den Verweis auf die Liste. Der Wert null soll nicht zu der Liste hinzugefügt werden. Er wird ignoriert.


 public static SingleLinkedList wertHinzufuegen(SingleLinkedList liste, String data) {

     // null soll nicht in der Liste vorkommen
     if(data == null) {
         return liste;
     }

     // Neuen Eintrag erstellen und Daten einfügen
     SingleLinkedList eintrag = new SingleLinkedList();
     eintrag.data = data;

     // Bei einer leeren Liste, wird eine neue Liste begonnen
     if(liste == null) {
         return eintrag;
     }

     // Wir suchen das Ende der Liste
     SingleLinkedList position = liste;
     while(position.next != null) {
         position = position.next;
     }

     // Eintrag am Ende anhängen
     position.next = eintrag;

     // Verweis auf Liste zurückgeben
     return liste;
 }
In diesem Beispiel wird zuerst geprüft, ob der neue Wert ungleich null ist, da er nur dann in die Liste aufgenommen werden darf. Dann wird ein neues Listenelement erstellt und die Daten eingefügt. Im dritten Schritt wird geprüft, ob es sich um eine leere Liste handelt. Dann würde der neue Eintrag zurückgegeben werden, als der Beginn einer neuen Liste.

Im vierten Schritt wird das Ende der Liste ermittelt. Hierfür wird eine temporäre Variable “position” verwendet und solange durch den nächsten Listeneintrag überschrieben, bis das Ende erreicht wird. Danach wird der neue Eintrag angefügt.

Wir können nun in unserer Main Methode die Liste der Planeten befüllen.


public static void main(String[] args) throws Exception { // unsere Liste SingleLinkedList planeten = null; planeten = wertHinzufuegen(planeten, "Merkur"); planeten = wertHinzufuegen(planeten, "Venus"); planeten = wertHinzufuegen(planeten, "Erde"); planeten = wertHinzufuegen(planeten, "Mars"); planeten = wertHinzufuegen(planeten, "Jupiter"); planeten = wertHinzufuegen(planeten, "Saturn"); planeten = wertHinzufuegen(planeten, "Uranus"); planeten = wertHinzufuegen(planeten, "Neptun"); planeten = wertHinzufuegen(planeten, "Pluto"); }