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
