繁体   English   中英

二进制搜索树-存储对父节点的引用

[英]Binary Search Tree - storing reference to parent node

我不是编程专家,但我希望有人能帮助我,但是我正在使用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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM