CSES - Toistuva alkio

Muuta kurssimateriaalin luokkaa TreeSet niin, että sama alkio voi toistua monta kertaa. Tämä vaatii muutoksia materiaalin metodeihin. Toteuta lisäksi metodi count, joka ilmoittaa, montako kertaa tiettyä alkio toistuu.

Toteuta muutokset niin, että luokassa Node on uusi arvo count, joka ilmoittaa, montako kertaa alkio toistuu. Luokassa TreeSet olevien metodien tulee käyttää oikealla tavalla tätä arvoa.

Toteuta tiedostoon treemany.py luokka TreeSet seuraavan mallin mukaisesti. Voit lisätä luokkaan muita tarvitsemiasi metodeja kuten metodin traverse.

class Node:
    def __init__(self, value):
        self.value = value
        self.left = None
        self.right = None
        self.count = 1

class TreeSet:
    def __init__(self):
        self.root = None

    def add(self, value):
        # TODO

    def __contains__(self, value):
        # TODO

    def __repr__(self):
        # TODO

    def count(self, value):
        # TODO

if __name__ == "__main__":
    numbers = TreeSet()

    numbers.add(4)
    numbers.add(1)
    numbers.add(2)
    numbers.add(1)

    print(numbers) # [1, 1, 2, 4]

    print(1 in numbers) # True
    print(2 in numbers) # True
    print(3 in numbers) # False
    print(4 in numbers) # True

    print(numbers.count(1)) # 2
    print(numbers.count(2)) # 1
    print(numbers.count(3)) # 0
    print(numbers.count(4)) # 1