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
