diff --git a/Aufgabe03a.py b/Aufgabe03a.py index e5af05231297ae546c0266a1c5111e902102d112..78f5c9d1e30d4ab60b833371f8a24b64021c772a 100644 --- a/Aufgabe03a.py +++ b/Aufgabe03a.py @@ -1,7 +1,8 @@ -class Stack(list): +class Stack(): + def __init__(self, l=[]): self.stack = l - + def __str__(self): max_length = len(str(max(self.stack, key=lambda x: len(str(x))))) result = "" @@ -12,7 +13,7 @@ class Stack(list): def push(self, element): self.stack.append(element) - + def pop(self): element = self.stack[-1] del self.stack[-1] @@ -34,45 +35,48 @@ class ListElement: self.next = next class StackList: - - def __init__(self, l): - self.first_element = ListElement(l[-1]) - element = self.first_element - for value in l[1::-1]: - while element.next is not None: - element = element.next - element.next = ListElement(value) - + + def __init__(self, l=None): + if l is None: + self.first_element = None + else: + self.first_element = ListElement(l[-1]) + element = self.first_element + for value in l[1::-1]: + while element.next is not None: + element = element.next + element.next = ListElement(value) + def __str__(self): return_string = "" element = self.first_element while element.next is not None: return_string += str(element.value) + " -> " element = element.next - + return return_string + str(element.value) def push(self, value): self.first_element = ListElement(value, self.first_element) - + def pop(self): value = self.first_element.value self.first_element = self.first_element.next return value - + def top(self): return self.first_element.value - + def size(self): if self.first_element is None: return 0 - + n = 1 element = self.first_element while element.next is not None: n += 1 element = element.next - + return n def isEmpty(self):