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"); }