From 4a5c0c03fd928841e89e312b1b7936896075b93d Mon Sep 17 00:00:00 2001 From: innin-jam Date: Sun, 27 Sep 2026 18:19:51 +0200 Subject: [PATCH] =?UTF-8?q?=C3=84nderungen=20von=20letzter=20Stunde?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ich konnte nicht während des Unterrichts pushen. Dieser Commit enthält die Änderungen, von Nextcloud kopiert --- README.md | 4 -- linked-lists/aufgabe-1.md | 22 +++++++++ linked-lists/linked_list.py | 46 +++++++++++++++++++ linked-lists/starten.py | 17 +++++++ .../aufgabe3.md | 0 input.py => mario-kart/input.py | 0 items.py => mario-kart/items.py | 0 kart.py => mario-kart/kart.py | 0 main.py => mario-kart/main.py | 0 9 files changed, 85 insertions(+), 4 deletions(-) create mode 100644 linked-lists/aufgabe-1.md create mode 100644 linked-lists/linked_list.py create mode 100644 linked-lists/starten.py rename {schriftliche-aufgaben => mario-kart}/aufgabe3.md (100%) rename input.py => mario-kart/input.py (100%) rename items.py => mario-kart/items.py (100%) rename kart.py => mario-kart/kart.py (100%) rename main.py => mario-kart/main.py (100%) diff --git a/README.md b/README.md index 93dadb1..d80a2ed 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,3 @@ # orientada-a-objectos -- Objektorientierte Programmierung mit Python -- - -## Schriftliche Aufgaben - -- [Aufgabe 3](./schriftliche-aufgaben/aufgabe3.md) diff --git a/linked-lists/aufgabe-1.md b/linked-lists/aufgabe-1.md new file mode 100644 index 0000000..b0c1b87 --- /dev/null +++ b/linked-lists/aufgabe-1.md @@ -0,0 +1,22 @@ +# Verkettete Liste -- Linked Lists + +Aufgabe von itslearning: + +## Aufgabe 1 + +> Beschreiben Sie den Auszug aus liste.py zeilenweise, schriftlich + + 1. importiere die Knoten Klasse aus der datei knoten.py + 2. start von Difinition der Klasse Liste + 3. Definition des Konstruktors + 4. Konstruktor-Body: ein neues Objekt wird kreiert, mit dem Attribut head gleich None + 5. (leer) + 6. Definition einer Methode zum Ausgeben der Liste in die Konsole + 7. (leer) + 8. Attribut head wird in aktueller_knoten zwischengespeichert + 9. (leer) +10. Schleife, die alle Knoten der Liste durchläuft +11. (leer) +12. Daten des aktuellen Knoten werden in der Konsole ausgegeben +13. (leer) +14. aktueller_knoten wird auf den ihm folgenden Knoten gesetzt diff --git a/linked-lists/linked_list.py b/linked-lists/linked_list.py new file mode 100644 index 0000000..67afd6f --- /dev/null +++ b/linked-lists/linked_list.py @@ -0,0 +1,46 @@ +from typing import Self + + +class Node: + def __init__(self, data: int): + self.data: int = data + self.next: Self | None = None + + +class LinkedList: + def __init__(self): + self.head: Node | None = None + + # Definition der "append" Methode ich mag push und pop lieber >:) + def push(self, data: int): + if self.head is None: + self.head = Node(data) + return + + node = self.head + assert node is not None + + while True: + if node.next is None: + node.next = Node(data) + return + node = node.next + + def pop(self) -> int | None: + if self.head is None: + self.head = None + return None + + node = self.head + assert node is not None + + while True: + if node.next is None: + return node.data + node = node.next + + def print(self): + node = self.head + while node is not None: + print(node.data) + node = node.next diff --git a/linked-lists/starten.py b/linked-lists/starten.py new file mode 100644 index 0000000..36ba39e --- /dev/null +++ b/linked-lists/starten.py @@ -0,0 +1,17 @@ +from linked_list import LinkedList + +list = LinkedList() +list.push(123) +list.push(456) +list.push(789) +list.print() + +print(list.pop()) +print(list.pop()) +print(list.pop()) + + +# node3 = Node(333) +# node2.next = node3 + +# print(node1.data, node1.next.data, node2.next) diff --git a/schriftliche-aufgaben/aufgabe3.md b/mario-kart/aufgabe3.md similarity index 100% rename from schriftliche-aufgaben/aufgabe3.md rename to mario-kart/aufgabe3.md diff --git a/input.py b/mario-kart/input.py similarity index 100% rename from input.py rename to mario-kart/input.py diff --git a/items.py b/mario-kart/items.py similarity index 100% rename from items.py rename to mario-kart/items.py diff --git a/kart.py b/mario-kart/kart.py similarity index 100% rename from kart.py rename to mario-kart/kart.py diff --git a/main.py b/mario-kart/main.py similarity index 100% rename from main.py rename to mario-kart/main.py