Compare commits

...
3 Commits
Author SHA1 Message Date
alstergym 2591cf3eeb 02 2026-10-02 09:09:11 +02:00
alstergym 46f77c0c14 28 2026-09-28 15:47:34 +02:00
alstergym 2aca88f3cc 25 2026-09-25 09:12:23 +02:00
3 changed files with 107 additions and 24 deletions
+4
View File
@@ -3,3 +3,7 @@
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.
## 02.10
Heute habe ich mich an die Aufgaben gesetzt und die neu hinzugefügten Code zeile versuch schlüssig zu erklären.
+98 -5
View File
@@ -4,12 +4,105 @@ class Liste: # class wird ers
def __init__(self): # __init__ der Konstruktor und wird mit dem Parameter self gefüllt
self.head = None # die Methode head erhält die definition Nne wodurch das Ende der Kette beschrieben wird
def ausgebenListe(self): # Methode wird erstellt
def ausgebenListe(self): # Methode wird erstellt
aktueller_knoten = self.head #aktueller_knoten wird auf self.head gesetzt
aktueller_knoten = self.head #aktueller_knoten wird auf self.head gesetzt
while aktueller_knoten is not None: # unter der Bedingung das aktueller_knoten einen wert hat...
while aktueller_knoten is not None: # unter der Bedingung das aktueller_knoten einen wert hat...
print(aktueller_knoten.daten) # befehl wird erteilt , dass der aktuelle_knoten.daten also die neuzugeschriebenen werte ausgegeben werden
print(aktueller_knoten.daten) # befehl wird erteilt , dass der aktuelle_knoten.daten also die neuzugeschriebenen werte ausgegeben werden
aktueller_knoten = aktueller_knoten.nachfolger # daraufhin wird der nachfolger von aktueller_knoten der neue aktuelle_knoten die werte somit also überschrieben
aktueller_knoten = aktueller_knoten.nachfolger # daraufhin wird der nachfolger von aktueller_knoten der neue aktuelle_knoten die werte somit also überschrieben
#aufgabe2
def append(self,daten):
aktueller_knoten = Knoten(daten) # Objekt erzeugt mit `daten` drin
if self.head == None:
self.head = aktueller_knoten # aktuelller knoten wird als "link" in head gespeichert und schafft eine verbindung nwird zum neuen head
else:
letzter_Knoten = self.head
# letzter Knoten wird gesucht, vom head
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
#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
+5 -19
View File
@@ -1,23 +1,9 @@
#from knoten import Knoten
#knoten1 = Knoten(33)
#knoten2 = Knoten(66)
#knoten1.next = knoten2
#print(knoten1.next.data)
#print(knoten2.data)
from knoten import Knoten
class Liste:
def __init__(self):
self.head = None
def ausgebenListe(self):
knoten1 = Knoten(33)
knoten2 = Knoten(66)
knoten1.next = knoten2
aktueller_knoten = self.head
print(knoten1.next.data)
print(knoten2.data)
while aktueller_knoten is not None:
print(aktueller_knoten.daten)
aktueller_knoten =aktueller_knoten.nachfolger