Toteuta kurssimateriaalin mukainen binäärihakupuu, jossa puun korkeuden pystyy hakemaan metodilla height
.
Puun korkeus on suurin puussa olevan solmun syvyys. Toisin sanoen puun korkeus ilmaisee, montako kaarta pisin polku puun juuresta lehteen sisältää. Jos puu on tyhjä, korkeus on .
Ota pohjaksi kurssimateriaalin toteutus ja lisää luokkaan muuttuja max_depth
, jota päivitetään tarvittaessa metodin add
kutsumisen jälkeen. Metodi height
voi palauttaa suoraan tämän muuttujan arvon.
Toteuta tiedostoon treeheight.py
luokka TreeSet
seuraavan mallin mukaisesti. Tehtäväsi on täydentää metodi add
, johon voit ottaa pohjan kurssimateriaalista.
class Node: def __init__(self, value): self.value = value self.left = None self.right = None class TreeSet: def __init__(self): self.root = None self.max_depth = -1 def add(self, value): # TODO def height(self): return self.max_depth if __name__ == "__main__": numbers = TreeSet() print(numbers.height()) # -1 numbers.add(2) print(numbers.height()) # 0 numbers.add(1) print(numbers.height()) # 1 numbers.add(3) print(numbers.height()) # 1 numbers.add(4) print(numbers.height()) # 2