Основной класс ДеревоПодсчет количества узлов в бинарном дереве с листьями
class Tree:
def __init__(self, root, size):
self.root = None
self.size = 0
def count_nodes(self):
if self.value is None:
return -1
else:
return 1 + self.count_nodes(self.left) + self.count_nodes(self.right)
#self.size += 1
#if self.left is not None:
#self.left.count_nodes()
#if self.right is not None:
#self.right.count_nodes()
#return self.size
с подклассами Node и листьев
class Node (Tree):
def __init__(self, value, left, right):
self.left = left
self.right = right
self.value = value
class Leaf (Tree):
def __init__(self, value):
self.value = value
Что мне делать, когда столкнулся с листа? Я попробовал вышеуказанные 2 метода и до сих пор не знаю, как обращаться с листом.
образца дерева будет следующим и tree.count-nodes()
должен вернуть 7
tree = Node ("one",
Node ("two", Leaf ("three"), Leaf ("four")),
Node ("five", Leaf ("six"), Leaf ("seven")))
Зачем вам класс 'Leaf'? Лист - это просто «Узел» с детьми «Нет». –