1

誰かが私を助けてくれることを願っています。私はプログラミングの専門家ではありませんが、Pythonを使用して二分木を学び実験しています。

以下は私が持っているコードであり、ノードの親への参照をそのノードに保存しようとしましたが、その親ノードの保存はリーフノードでは機能しません。ツリーを構築するプロセス中にこれを行う方法はありますか?

また、特定のノードについて、が「左」ノードであるか「右」ノードであるかを知りたいです。ノードがTreeNode.leftまたはTreeNode.rightのインスタンスに格納されているのを見て、n._name_などのようにPythonでこれへの参照を取得できる可能性があると思いました。ノードが左か右かを確認する正しい方法を教えてください。

私の最終的な目標は、レベル順のトラバーサルを通じてツリーを視覚化することです。

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
4

1 に答える 1

3

これには多くの問題があります。宿題なので、ヒントを一つあげます。

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ですか?

于 2012-02-08T10:52:17.107 に答える