6th Commit
This commit is contained in:
+96
-16
@@ -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,
|
|
||||||
|
|||||||
@@ -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,
|
||||||
Reference in New Issue
Block a user