「100101」のようなバイナリシーケンスからツリーをバイナリ作成しようとしています。このようにツリーを作成したいと思います。(基本的に1は右に行くことを意味し、0は左に行くことを意味します)
<Root node>
|
1
/
0
/
0
\
1
/
0
\
1
だから私はここでそれをしましたコードです:ここで値は文字列シーケンスになります(例:value = "1001")
def _inserto(root,value):
for i in value:
if root == None:
root = BSTNode(i)
current = root
elif i == "1":
if current.right is not None:
current.right = BSTNode(i)
current = current.right
else:
current.right = BSTNode(i)
current = current.right
elif i == "0":
if (current.left is not None):
current.left = BSTNode(i)
current = current.left
else:
current.left =BSTNode(i)
current = current.left
return root
ここで問題となるのは、「01」のような別のシーケンスを入力する場合、ツリーは次のようになるはずです。
<Root Node>
|
1
/
0
/ \
0 1
\
1
/
0
\
1
、しかし、私の関数が古いツリーを上書きしようとしているので、私は本当に苦労しています。