Я учусь программировать двоичное дерево, и я хочу проверить, есть ли данное число уже в дереве, поэтому, когда я пытаюсь добавить тот же номер, он останавливается.
class Node:
exist = True
@classmethod
def num_exist(cls, n):
cls.exist = cls.find(n)
def find(self, n):
if n != self.value:
if n < self.value:
if self.right != None:
self.right.find(n)
else:
return False
if n > self.value:
if self.left != None:
self.left.find(n)
else:
return False
else:
return self
def add(self, n):
self.num_exist(n)
if self.exist == False:
if n != self.value:
if n < self.value:
if self.right != None:
self.add(n)
else:
self.right = Node(n)
if n > self.value:
if self.left != None:
self.add(n)
else:
self.left = Node(n)
Проблема здесь в что, когда я вызываю функцию num_exist()
, появляется следующая ошибка:
TypeError: find() missing 1 required positional argument: 'n'
Я полагаю, эта ошибка связана с тем, что параметр self
не был передан, но я не знаю, как сделайте это или, если возможно, передать функцию find()
в @classmethod
. Я довольно новичок ie в oop.