From 2591cf3eeb13489fb7da4c48ddb2e096e7cfa643 Mon Sep 17 00:00:00 2001 From: alstergym Date: Fri, 2 Oct 2026 09:09:11 +0200 Subject: [PATCH] 02 --- README.md | 4 +- liniare_verkettete_Listen/liste.py | 80 +++++++++++++++++++++++++++++- 2 files changed, 82 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7ada577..147f26d 100644 --- a/README.md +++ b/README.md @@ -4,4 +4,6 @@ verkettete Liste und liniare Liste in der Klasse besprovhen und erklärt ## 21.09 Aufgabe von Itslearning bearbeitet und in der Datei liste.py zu finden, inform von #anhenungen an die einzelnen zeilen. ## 25.09 -An den Aufgaben von istlearning weiter gearbeitet und einiges ausprobiert. \ No newline at end of file +An den Aufgaben von istlearning weiter gearbeitet und einiges ausprobiert. +## 02.10 +Heute habe ich mich an die Aufgaben gesetzt und die neu hinzugefügten Code zeile versuch schlüssig zu erklären. \ No newline at end of file diff --git a/liniare_verkettete_Listen/liste.py b/liniare_verkettete_Listen/liste.py index 4ebe091..13628b1 100644 --- a/liniare_verkettete_Listen/liste.py +++ b/liniare_verkettete_Listen/liste.py @@ -27,4 +27,82 @@ class Liste: # class wird ers while letzter_Knoten.nachfolger is not None: # wird die liste durchgegangen und der nachfolger ist None ist dies das letzte Atribut letzter_Knoten = letzter_Knoten.nachfolger - letzter_Knoten.nachfolger = aktueller_knoten \ No newline at end of file + letzter_Knoten.nachfolger = aktueller_knoten + + #Element in die Kette einfügen + def einfuegen_bei(self, index, daten): #definiert das in den kommenden Zeilen ein neues Element eingeführt werden soll + + neuer_Knoten = Knoten(daten) # neues Elemen wird mit einewm Objekt gefüllt + + if index == 0: #wenn index Null dann.... + + neuer_Knoten.nachfolger = self.head #die daten des neuen Knoten werden als link auf head gesetzt und somit zeigt head auf den neuen knoten + self.head = neuer_Knoten # + + return #beendet die Methode nur wenn der if Befehl eingetreten ist + + 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 + + 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): # Element wird an bestimmter stelle gelöscht + + if self.head is None: + print("Liste ist leer") + return + + if index == 0: + self.head = self.head.nachfolger + return + + aktueller_knoten = self.head + + for i in range(index-1): + if aktueller_knoten.nachfolger is None: + print(f"Index {index} existiert nicht") + return + aktueller_knoten = aktueller_knoten.nachfolger + + if aktueller_knoten.nachfolger is None: + print("Existiert nicht") + return + + aktueller_knoten.nachfolger = aktueller_knoten.nachfolger.nachfolger + + + + \ No newline at end of file