バイナリツリーをシリアル化された方法で転送したいと考えており、そのツリーを渡すための文字列は1つだけであり、1つのトラバーサルの助けを借りることができますが、それを行う方法はありますか?-(Ebayで私に尋ねられました)。
言い換えれば、1つのツリートラバーサル文字列のみを使用してバイナリツリーを生成できますか?インタビュアーはまた、葉がない場所でnullを使用できると言ってヒントをくれました。
バイナリツリーをシリアル化された方法で転送したいと考えており、そのツリーを渡すための文字列は1つだけであり、1つのトラバーサルの助けを借りることができますが、それを行う方法はありますか?-(Ebayで私に尋ねられました)。
言い換えれば、1つのツリートラバーサル文字列のみを使用してバイナリツリーを生成できますか?インタビュアーはまた、葉がない場所でnullを使用できると言ってヒントをくれました。
[編集]これは実際の問題ではなく、特定のタスクのように思われるため、答えは意味がありませんでした。2回目の試行:
null値を使用できることを確認すると、実際にnull値で事前順序付けを使用できます。
a b null null c null null
(a (b) (c))
のように見えるツリーになりますが、次のように(a (b (c)) )
コード化されますa b c null null null null
(各リーフに2つのnullの子を与えたことに注意してください、おそらくそれがなくても機能します)
http://www.seas.gwu.edu/~csci133/fall05/trees-fig4.jpg
上の画像の上のツリーを検討してください。1つのトラバーサルのみを使用して文字列を渡したい場合は、その特定の場所に子がない場合は常に特別な記号を付けることができます。
今、1 2 4 7 $ $ $ 5 $ $ 3 $ 6 8 $ $ 9$$を渡すと
1
/ \
2 3
/ \ / \
4 5 $ 6
/ \ / \ / \
7 $ $ $ 8 9
/ \ /\ /\
$ $ $ $ $ $
ここで$は、子がnullであることを意味するため、注文の次の場所に移動します。
私が間違っていて上記が不可能な場合は私を訂正してください....
文字列、byte []、またはストリームでオブジェクトを表現する場合は、JSONシリアル化またはXMLシリアル化を確認できます。