誰かが私を助けてくれることを願っています。私はプログラミングの専門家ではありませんが、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