По сути, вы меняли параметры функции add
, поскольку self
- это дерево здесь, а d
- элемент данных, который нужно добавить.Кроме того, чтобы создать такие BTNode2
s только с одним параметром, вы должны добавить значение по умолчанию для l
и r
.Наконец, в зависимости от того, что делает mult
, вы можете изменить это в алгоритме добавления, но не совсем понятно, что он представляет.
Так что мы можем исправить это на:
class BTNode2:
def __init__(self, d, l<b>=None</b>, r<b>=None</b>):
self.data = d
self.left = l
self.right = r
self.mult = 1
def add(self, d):
if d < self.data:
if self.left is not None:
<b>self.left.add(d)</b>
else:
self.left = BTNode2(d)
else:
if self.right is not None:
<b>self.right.add(d)</b>
else:
self.right = BTNode2(d)