Vorab:
Ja, es ist eine Hausaufgabe. Nur leider komm ich nicht weiter und wäre über eine Hilfestellung oder einen Denkanstoß sehr dankbar.
Aufgabe: Initialisieren Sie eine einfach verkettete Liste mit Zufallszahlen!
Wenn ich die verketteten Listen richtig verstanden habe, dann enthält ein Knoten die Daten und den Verweiß auf den nächsten Knoten, bis das nächste Element NIL ist?
In den Vorlesungen sieht der Konstruktor für einen Knoten wie folgt aus:
Code: Alles auswählen
class Node:
def __init__(self, d):
self.data = d
self.next = None
Code: Alles auswählen
def append(data, list):
node = Node(data)
if list is None:
node.next = None
return node
i = list
while i.next is not None:
i = i.next
i.next = node
node.next = None
return list
Code: Alles auswählen
node = Node(7)
print(node)
Um nun einen Inhalt in die Liste einzufügen, müsste ich die funktion append aufrufen.
Hier komm ich nicht weiter. Ich glaube mir fehlt hier das essentielle Verständnis...
Ich probiere es mal in Worte zu fassen was ich nicht verstehe:
Ich erzeuge die Klasse "Knoten". Diese hat die 2 Eigentschaften self.data und self.next, wobei das "self" nur zum erstmaligen erzeugen der Klasse dient (sorry, OOP haben wir eigentlich noch nicht gemacht, hab jedoch ein bisschen Vorwissen - was nicht unbedingt gut ist).
Was mir nicht klar ist:
* wozu der Parameter "list" in der Funktion append dient.
* wie verwende ich .next? in der Klasse Node ist .next immer = None?
* Wenn .data zum Einfügen von Elementen dient, wofür brauch ich dann die Funktion Append?
Zusammenfassend kann ich nur sagen, dass ich trotz viel Zeitaufwand das zu verstehen, einfach nur verwirrt bin und hoffe, dass mir wer den richtigen Weg zeigen kann, damit mir ENDLICH ein Licht aufgeht.
Danke schomal.