Python 二叉搜索树-存储对父节点的引用

Python 二叉搜索树-存储对父节点的引用,python,data-structures,recursive-datastructures,Python,Data Structures,Recursive Datastructures,我希望有人能帮助我,我不是编程专家,但我正在使用Python学习和实验二进制树 下面是我的代码,我尝试在节点中存储对节点父节点的引用,但存储它的父节点对叶节点不起作用。在建造树的过程中,有没有办法做到这一点 我还想知道对于给定的节点,是“左”节点还是“右”节点。我认为,由于节点存储在TreeNode.left或TreeNode.right的实例中,我可能能够在Python中获得对它的引用,如在n.\u name\u或类似的内容中。你能告诉我一个节点是左还是右的正确方法吗 我的最终目标是通过级别顺

我希望有人能帮助我,我不是编程专家,但我正在使用Python学习和实验二进制树

下面是我的代码,我尝试在节点中存储对节点父节点的引用,但存储它的父节点对叶节点不起作用。在建造树的过程中,有没有办法做到这一点

我还想知道对于给定的节点,是“左”节点还是“右”节点。我认为,由于节点存储在TreeNode.left或TreeNode.right的实例中,我可能能够在Python中获得对它的引用,如在n.\u name\u或类似的内容中。你能告诉我一个节点是左还是右的正确方法吗

我的最终目标是通过级别顺序遍历来可视化我的树

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
class树节点:
左,右,数据=无,无,0
定义初始化(self,nodeData,左=无,右=无,父=无):
self.nodeData=nodeData
self.left=左
self.right=right
self.parent=self
类树:
定义初始化(自):
self.root=None
def addNode(自身,输入数据):
返回树节点(输入数据)
def insertNode(自、父、根、输入数据):
如果根=无:
返回self.addNode(inputData)
其他:
root.parent=parent

如果inputData这有很多很多问题。既然是家庭作业,我就给你一个提示

def __init__(self,nodeData, left = None, right = None, parent = None):
 self.nodeData = nodeData
 self.left = left
 self.right = right
 self.parent = self

为什么没有将self.parent设置为
parent

这有很多问题。既然是家庭作业,我就给你一个提示

def __init__(self,nodeData, left = None, right = None, parent = None):
 self.nodeData = nodeData
 self.left = left
 self.right = right
 self.parent = self

为什么不将
self.parent
设置为
parent

类树节点:左,右,data=None,None,0
不做您认为它做的事情。这三个变量不是每个节点的一部分。你需要找到一个更好的Python教程。请用
家庭作业
标记你的家庭作业。
类树节点:左,右,data=None,None,0
不做你认为它做的事情。这三个变量不是每个节点的一部分。你需要找到一个更好的Python教程。请用
家庭作业
标记你的家庭作业。嗨,谢谢你的回复。这不是家庭作业,因为它只是一个个人项目。再次非常感谢,Alex谢谢你的提示。我很想知道你认为代码有什么问题。是进行完整代码审查的更好地方。然而。类级变量
类树节点:左、右、数据=None、None、0在该代码中无效。而且
def addNode(self,inputData)
的名称不正确。和
insertNode
实现错误。您好,感谢您的回复。这不是家庭作业,因为它只是一个个人项目。再次非常感谢,Alex谢谢你的提示。我很想知道你认为代码有什么问题。是进行完整代码审查的更好地方。然而。类级变量
类树节点:左、右、数据=None、None、0在该代码中无效。而且
def addNode(self,inputData)
的名称不正确。而
insertNode
实现是错误的。