This commit is contained in:
alstergym
2026-10-02 09:06:14 +02:00
parent 875fecb97d
commit d4f0c7f976
8 changed files with 138 additions and 52 deletions
+13 -15
View File
@@ -1,18 +1,16 @@
MIT License MIT No Attribution
Copyright (c) 2026 ben.sommerfeld Copyright <YEAR> <COPYRIGHT HOLDER>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and Permission is hereby granted, free of charge, to any person obtaining a copy of this
associated documentation files (the "Software"), to deal in the Software without restriction, including software and associated documentation files (the "Software"), to deal in the Software
without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell without restriction, including without limitation the rights to use, copy, modify,
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
following conditions: permit persons to whom the Software is furnished to do so.
The above copyright notice and this permission notice shall be included in all copies or substantial THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
portions of the Software. INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
USE OR OTHER DEALINGS IN THE SOFTWARE.
+6 -6
View File
@@ -1,6 +1,6 @@
# objekt-orientierung # BenSommerfelds
~~~
(\ /)
( ⚆.⚆) ## Für Henri
c(")(")
~~~ https://www.google.com/maps/@43.1881681,-103.7798091,1100a,75y,251.86h,103.97t/data=!3m7!1e1!3m5!1s2YhLs-L3EDaoIguLi50gBA!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fcb_client%3Dmaps_sv.tactile%26w%3D900%26h%3D600%26pitch%3D-13.974626616778963%26panoid%3D2YhLs-L3EDaoIguLi50gBA%26yaw%3D251.85602748433385!7i16384!8i8192?entry=ttu&g_ep=EgoyMDI2MDgyNS4wIKXMDSoASAFQAw%3D%3D
View File
+2 -2
View File
@@ -11,9 +11,9 @@ class Kart:
def beschleunigen(self): def beschleunigen(self):
self.vel = self.vel +5 self.vel = self.vel +5
def uderzac(self, knilch): #Rammen def uderzac(self, knilch): #Rammen
self.vel = self.vel -2 self.vel = self.vel -2
knilch.vel = knilch.vel -3 knilch.vel = knilch.vel -3
def ukubremha(self): #Bremsen def ukubremha(self): #Bremsen
self.vel = self.vel -4 self.vel = self.vel -4
+109
View File
@@ -0,0 +1,109 @@
from knoten import Knoten
class Liste:
def __init__(self):
self.head = None
def append(self,daten): #Verlängert die liste
neuer_Knoten = Knoten(daten)
if self.head is None:
self.head = neuer_Knoten
else:
letzter_Knoten = self.head
while letzter_Knoten.nachfolger is not None:
letzter_Knoten = letzter_Knoten.nachfolger
letzter_Knoten.nachfolger = neuer_Knoten
def ausgebenListe(self): #Gibt die liste aus, Knoten für Knoten
aktueller_knoten = self.head
while aktueller_knoten is not None:
print(aktueller_knoten.daten)
aktueller_knoten = aktueller_knoten.nachfolger
def einfuegen_bei(self, index, daten): #Fügt an der Stelle "index" einen neuen Knoten ein
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
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): #löscht den ersten Knoten mit dem gesuchten Wert
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 #Der Nachfolger des Knoten vor dem zu löschenden Knoten wird auf den Knoten nach dem zu löschenden Knoten gesetzt. Dadurch gibt es keinen Knoten mehr, der auf den zu löschenden Knoten zeigt, er ist nun "gelöscht".
def loeschen_anStelle(self,index): #"Löscht" den Knoten an der Stelle "Index"
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
Binary file not shown.
+8 -29
View File
@@ -1,33 +1,12 @@
from knoten import Knoten from knoten import Knoten
class Liste: k1=Knoten(1)
def __init__(self): print(k1.data)
self.head = None k2=Knoten(2)
print(k2.data)
def ausgebenListe(self): k1.next=k2
print("--")
aktueller_knoten = self.head print(k1.next.data)
print(k2.data)
while aktueller_knoten is not None:
print(aktueller_knoten.data)
aktueller_knoten = aktueller_knoten.next
def append(self,data):
neu = Node(data)
if self.head is None:
self.head = neu
return
knoten = self.head
while True:
if knoten.next is None:
knoten.next = neu
return
knoten = knoten.next
def insert(self,data,stelle):
neu = Node(data)
for i in range (stelle-1):
Binary file not shown.