Я надеюсь, что кто-то может мне помочь, я не профессионал в области программирования, но использую Python для изучения и экспериментов с двоичными деревьями.
Ниже приведен код, который я имею, и попытался сохранить и сохранитьссылка на родителя узла в его узле, сохранение его родительского узла, не будет работать для конечных узлов.Есть ли способ сделать это в процессе построения дерева?
Я также хотел бы знать для данного узла, является ли это узлом «Левый» или «Правый».Я думал, видя, как узел хранится в экземпляре TreeNode.left или TreeNode.right, я мог бы получить ссылку на это в Python, как в n ._ name _ или что-то в этом роде.Не могли бы вы сказать мне правильный способ определить, является ли узел левым или правым?
Моей конечной целью будет визуализация моего дерева с помощью обхода порядка уровня.
class TreeNode:
left, right, data = None, None, 0
def __init__(self,nodeData, left = None, right = None, parent = None):
self.nodeData = nodeData
self.left = left
self.right = right
self.parent = self
class Tree:
def __init__(self):
self.root = None
def addNode(self, inputData):
return TreeNode(inputData)
def insertNode(self, parent, root, inputData):
if root == None:
return self.addNode(inputData)
else:
root.parent = parent
if inputData <= root.nodeData:
root.left = self.insertNode(root, root.left, inputData)
else:
root.right = self.insertNode(root, root.right, inputData)
return root