added some recursive datastructures
This commit is contained in:
56
recursion/recursive_datastructure/lists.py
Normal file
56
recursion/recursive_datastructure/lists.py
Normal file
@ -0,0 +1,56 @@
|
||||
from dataclasses import dataclass
|
||||
from typing import Iterator, Optional
|
||||
|
||||
@dataclass
|
||||
class Node[T]:
|
||||
value: T
|
||||
next_node: Optional['Node[T]']
|
||||
|
||||
|
||||
@dataclass
|
||||
class LinkedList[T]:
|
||||
|
||||
def __post_init__(self):
|
||||
# unser erstes Element
|
||||
self.__head: Optional[Node[T]] = None
|
||||
# Die Länge der Liste
|
||||
self.__length = 0
|
||||
|
||||
def __eq__(self, other: 'LinkedList[T]') -> bool:
|
||||
"""Hier wollen wir alle Elemente von dieser Liste mit allen Elementen von einer anderen Liste vergleichen.
|
||||
Hierbei kann man von ausgehen dass T vergleichbar ist.
|
||||
Das Programm sollte nicht abstürzen bei unterschiedlichen längen etc. sondern einfach False zurückgeben"""
|
||||
pass
|
||||
|
||||
def __iter__(self) -> Iterator[T]:
|
||||
"""Hier wollen wir einen Iterator über alle Elemente haben, der Iterator kann leer sein
|
||||
Tipp: Generator"""
|
||||
pass
|
||||
|
||||
def append(self, value: T) -> None:
|
||||
"""Hier wollen wir einfach `value` an das Ende der Liste setzen und die Länge erhöhen"""
|
||||
pass
|
||||
|
||||
def remove(self, value: T):
|
||||
"""Hier wollen wir den Wert `value` aus unserer Liste entfernen, wir können davon ausgehen dass T vergleichbar ist.
|
||||
Wenn wir `value` nicht finden soll einfach nichts passieren"""
|
||||
pass
|
||||
|
||||
def __len__(self) -> int:
|
||||
"""Hier soll die Länge der Liste zurückgegeben werden"""
|
||||
pass
|
||||
|
||||
def __getitem__(self, index: int) -> T:
|
||||
"""_summary_
|
||||
|
||||
__getitem__ definiert das verhalten vom [] index operator wobei `index` der Wert ist der in [] übergeben wird
|
||||
|
||||
Hierbei sollen wir das Item `T` an Stelle `index` zurückgeben und sonst einen IndexError raisen
|
||||
|
||||
Args:
|
||||
index (int): der Index von dem Item was wir suchen
|
||||
|
||||
Returns:
|
||||
T: das Item an stelle `index`
|
||||
"""
|
||||
pass
|
Reference in New Issue
Block a user