私は配列= [1,2,3,4,5,6,7]を持っており、すべての要素をバイナリツリー項目にアイテムごとに挿入したい、それは次のようになりますので:項目をバイナリツリーに挿入する[PYTHON]
class Node(self):
def __init__(self):
self.value= 0
self.parent = None
self.left = None
self.right = None
とクラスツリー(木そのものを表す):
class Tree():
def __init__(self):
self.root = None
1
/ \
2 3
/\ /\
4 5 6 7
私は(各ノードを表す)クラスノードを持っています10今度は、配列を引数にとり、上で説明したようにバイナリツリーを作る関数を作る必要があります。
私はこれを管理している:
def insert(array):
size = len(array)
tree = Tree()
insert_node(tree.root, array, 0, size-1)
def insert_node(tree, array, index, size):
node = Node()
if index < size:
node.value = array[index]
insert_node(node.left, array, index*2 +1, size)
insert_node(node.right, array, index*2 +2, size)
tree = node
私はそのようなことは仕事ができると思うが、私は正しく「親」の属性を設定する方法と、ツリーにノードを割り当てる方法は考えています。
はあなたがinsert_node
内側からtree
に割り当てることはできません任意のアドバイス
これは答えではありません。 –
確かに。それはあなたが私にアドバイスしたものです。 – marvin
私の答えを読んでください。 –