Toteuta kurssimateriaalin mukainen binäärihakupuu, joka sisältää metodit min
ja max
pienimmän ja suurimman alkion hakemiseen. Toteuta metodit kurssimateriaalissa kuvatulla tavalla.
Toteuta tiedostoon minmax.py
luokka TreeSet
seuraavan mallin mukaisesti. Tehtäväsi on täydentää metodit min
ja max
. Et saa lisätä luokkaan muita metodeja kuin tehtäväpohjassa olevat.
class Node: def __init__(self, value): self.value = value self.left = None self.right = None class TreeSet: def __init__(self): self.root = None def add(self, value): if not self.root: self.root = Node(value) return node = self.root while True: if node.value == value: return if node.value > value: if not node.left: node.left = Node(value) return node = node.left else: if not node.right: node.right = Node(value) return node = node.right def min(self): # TODO def max(self): # TODO if __name__ == "__main__": numbers = TreeSet() print(numbers.min()) # None print(numbers.max()) # None numbers.add(3) print(numbers.min()) # 3 print(numbers.max()) # 3 numbers.add(4) print(numbers.min()) # 3 print(numbers.max()) # 4 numbers.add(1) print(numbers.min()) # 1 print(numbers.max()) # 4