6th Commit

This commit is contained in:
alstergym
2026-10-02 08:59:57 +02:00
parent e509f70907
commit 83935542cf
2 changed files with 131 additions and 22 deletions
+96 -16
View File
@@ -1,29 +1,109 @@
from knoten import Knoten from knoten import Knoten # aus der Datei "knoten.py" wird die Klasse "Knoten" importiert
class Liste: class Liste: # Die Klasse "Liste" wird angelegt
def __init__(self): def __init__(self): # Die Methode zur initialisierung der Klasse
self.head = None self.head = None # Variable "Head" wird "None" gesetzt, also leer
# Freizeile
# Freizeile
def append(self,daten): # In der Methode "append" werden Einträge hinzugefügt.
neuer_Knoten = Knoten(daten) # Es wird ein neuer Knoten, basierend auf der Klasse "Knoten" angelegt
# Freizeile
if self.head is None: # Wenn die Variable "Head" leer ist:
self.head = neuer_Knoten # Setze die Variablen "Head" und "neuer_Knoten" gleich
# Freizeile
else: # sonst:
letzter_Knoten = self.head # mache aus dem "letzter_Knoten" den neuen "Head"
# Freizeile
while letzter_Knoten.nachfolger is not None: # Solange die Variable "letzter_Knoten.nachfolger" nicht definiert ist:
letzter_Knoten = letzter_Knoten.nachfolger # setze den letzten Knoten ("letzter_Knoten") zum Nachfolger ("letzter_Knoten.nachfolger")
# Freizeile
letzter_Knoten.nachfolger = neuer_Knoten # und mache aus dem Nachfolger ("letzter_Knoten.nachfolger") den neuen Knoten ("neuer_Knoten")
# Freizeile
# Freizeile
def ausgebenListe(self): def ausgebenListe(self):
# Freizeile
aktueller_knoten = self.head aktueller_knoten = self.head
while aktueller_knoten is not None: while aktueller_knoten is not None:
print(aktueller_knoten.daten) print(aktueller_knoten.daten)
aktueller_knoten = aktueller_knoten.nachfolger aktueller_knoten = aktueller_knoten.nachfolger
def append(self,daten):
neuer_knoten = Knoten(daten) def einfuegen_bei(self, index, daten):
if self.head is None:
self.head = neuer_knoten neuer_Knoten = Knoten(daten)
if index == 0:
neuer_Knoten.nachfolger = self.head
self.head = neuer_Knoten
return #beendet die Methode
aktueller_knoten = self.head
zaehler = 0
while aktueller_knoten is not None and zaehler < index - 1:
aktueller_knoten = aktueller_knoten.nachfolger
zaehler += 1
if aktueller_knoten is None:
print ("index out of range")
return return
else:
neuer_Knoten.nachfolger = aktueller_knoten.nachfolger
aktueller_knoten.nachfolger = neuer_Knoten
### Sucht nach dem ersten Vorkommen des Werts und löscht es ####
def loeschen(self,suchwert):
aktueller_knoten = self.head
vorheriger_knoten = None
if aktueller_knoten is None:
print("Liste ist leer löschen nicht möglich")
return
if aktueller_knoten.daten == suchwert:
self.head = aktueller_knoten.nachfolger
return
while aktueller_knoten is not None and aktueller_knoten.daten != suchwert:
vorheriger_knoten = aktueller_knoten # merken zum Löschen
aktueller_knoten = aktueller_knoten.nachfolger
if aktueller_knoten is None:
print(f"Wert {suchwert} wurde nicht gefunden")
return
vorheriger_knoten.nachfolger = aktueller_knoten.nachfolger
def loeschen_anStelle(self,index):
if self.head is None:
print("Liste ist leer")
return
if index == 0:
self.head = self.head.nachfolger
return
aktueller_knoten = self.head aktueller_knoten = self.head
while aktueller_knoten.nachfolger is not None: for i in range(index-1):
if aktueller_knoten.nachfolger is None:
print(f"Index {index} existiert nicht")
return
aktueller_knoten = aktueller_knoten.nachfolger aktueller_knoten = aktueller_knoten.nachfolger
aktueller_knoten.nachfolger = neuer_knoten
# def delete(self, daten): if aktueller_knoten.nachfolger is None:
# falscher_knoten = print("Existiert nicht")
return
aktueller_knoten.nachfolger = aktueller_knoten.nachfolger.nachfolger
# Schnittstelle zur Verwaltung der Liste
# Methoden: Länge der Liste, Positionsabfrage, Einträge einfügen (attend) und Löschen,
+29
View File
@@ -0,0 +1,29 @@
from knoten import Knoten
class Liste:
def __init__(self):
self.head = None
def ausgebenListe (self):
aktueller_knoten = self.head
while aktueller_knoten is not None:
print(aktueller_knoten.daten)
aktueller_knoten = aktueller_knoten.nachfolger
def append(self,daten):
neuer_knoten = Knoten(daten)
if self.head is None:
self.head = neuer_knoten
return
else:
aktueller_knoten = self.head
while aktueller_knoten.nachfolger is not None:
aktueller_knoten = aktueller_knoten.nachfolger
aktueller_knoten.nachfolger = neuer_knoten
# def delete(self, daten):
# falscher_knoten =
# Schnittstelle zur Verwaltung der Liste
# Methoden: Länge der Liste, Positionsabfrage, Einträge einfügen (attend) und Löschen,