Menu
Coddy logo textTech

Rückblick – Verkettete Liste erstellen

Teil des Abschnitts Objektorientierte Programmierung der GO-Journey von Coddy. Lektion 24 von 107.

challenge icon

Aufgabe

Einfach

Erstellen wir eine verkettete Liste von Grund auf! Du erstellst eine Datenstruktur, bei der jeder Knoten auf den nächsten zeigt und so eine Kette verbundener Werte im Speicher bildet.

Du organisierst deinen Code über zwei Dateien:

  • linkedlist.go: Definiere eine Node-Struktur mit den Feldern Value (int) und Next (*Node). Erstelle eine LinkedList-Struktur, die einen Zeiger auf den Head-Knoten enthält. Implementiere diese Methoden für *LinkedList:
    • Append – fügt am Ende der Liste einen neuen Knoten mit dem angegebenen Wert hinzu
    • Prepend – fügt am Anfang der Liste einen neuen Knoten mit dem angegebenen Wert hinzu
    • Print – durchläuft die Liste und gibt alle Werte, getrennt durch -> , aus und beendet die Ausgabe mit nil
  • main.go: Lies Werte aus der Eingabe, erstelle durch Anhängen und Voranstellen von Knoten eine verkettete Liste und gib anschließend die endgültige Listenstruktur aus.

Die folgenden Eingaben werden bereitgestellt:

  • Zeile 1: Erster anzuhängender Wert
  • Zeile 2: Zweiter anzuhängender Wert
  • Zeile 3: Voranzustellender Wert

Deine Print-Methode sollte die Liste in diesem Format ausgeben:

[value1] -> [value2] -> [value3] -> nil

Wenn beispielsweise 10, 20 und 5 gegeben sind, sollte deine Ausgabe folgendermaßen aussehen:

5 -> 10 -> 20 -> nil

Die Methode Append muss bis zum Ende der Liste durchlaufen (wo Next nil ist), bevor sie den neuen Knoten hinzufügt. Die Methode Prepend sollte einen neuen Knoten erstellen, dessen Next auf den aktuellen Kopf zeigen lassen und anschließend den Kopf auf den neuen Knoten aktualisieren. Denke daran, dass eine leere Liste einen nil-Kopf hat, und behandle diesen Fall in deiner Append-Methode.

Probier es selbst

package main

import "fmt"

func main() {
	// Eingabewerte lesen
	var val1, val2, val3 int
	fmt.Scanln(&val1)
	fmt.Scanln(&val2)
	fmt.Scanln(&val3)

	// Eine neue verknüpfte Liste erstellen
	list := &LinkedList{}

	// TODO: Append verwenden, um val1 und val2 zur Liste hinzuzufügen

	// TODO: Prepend verwenden, um val3 am Anfang der Liste hinzuzufügen

	// TODO: Die finale Listenstruktur ausgeben
}

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Online-Go-Compiler