CSES - Joukon koko

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