Toteuta kurssimateriaalin mukainen binäärihakupuu, jonka alkioiden määrän pystyy hakemaan funktiolla len
. Tämä on mahdollista, kun luokassa on toteutettu metodi __len__
, joka palauttaa alkioiden määrän.
Ota pohjaksi kurssimateriaalin toteutus ja lisää luokkaan muuttuja size
, johon tallennetaan alkioiden määrä. Kun uusi alkio lisätään metodilla add
, tätä muuttujaa tulee päivittää. Metodi __len__
voi palauttaa suoraan tämän muuttujan arvon.
Toteuta tiedostoon treesize.py
luokka TreeSet
seuraavan mallin mukaisesti. Luokkaan on jo lisätty muuttuja size
ja metodi __len__
. 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.size = 0 def add(self, value): # TODO def __len__(self): return self.size if __name__ == "__main__": numbers = TreeSet() print(len(numbers)) # 0 numbers.add(1) print(len(numbers)) # 1 numbers.add(2) print(len(numbers)) # 2 numbers.add(3) print(len(numbers)) # 3 numbers.add(2) print(len(numbers)) # 3