誰かが私を助けてくれることを願っています。私はプログラミングの専門家ではありませんが、Pythonを使ってバイナリツリーを学んで実験しています。バイナリ検索ツリー - 親ノードへの参照を保存する
以下は私が持っているコードであり、ノードの親ノードへの参照を保存しようとしましたが、親ノードの格納は葉ノードでは機能しません。ツリーを構築する過程でこれを行う方法はありますか?
また、ノードが「左か右か」であるかどうかを知りたいと思います。私は、ノードがTreeNode.leftまたはTreeNode.rightのインスタンスに格納されているのを見て、私はn._ の名前 _などのように、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
'class TreeNode: left、right、data = None、None、0'あなたが思うようにはできません。これら3つの変数は、各ノードの**一部ではありません**。より良いPythonチュートリアルを見つける必要があります。 –
あなたの宿題に '宿題 'タグを付けてください。 –