6th Commit
This commit is contained in:
+97
-17
@@ -1,29 +1,109 @@
|
||||
from knoten import Knoten
|
||||
class Liste:
|
||||
def __init__(self):
|
||||
self.head = None
|
||||
|
||||
def ausgebenListe (self):
|
||||
from knoten import Knoten # aus der Datei "knoten.py" wird die Klasse "Knoten" importiert
|
||||
class Liste: # Die Klasse "Liste" wird angelegt
|
||||
def __init__(self): # Die Methode zur initialisierung der Klasse
|
||||
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):
|
||||
# Freizeile
|
||||
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
|
||||
|
||||
def einfuegen_bei(self, index, daten):
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
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.nachfolger = neuer_knoten
|
||||
|
||||
# def delete(self, daten):
|
||||
# falscher_knoten =
|
||||
if aktueller_knoten.nachfolger is None:
|
||||
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