私の質問は、私が見つけた結果とは少し異なり、かなりの時間(初心者)でJavaを使用していないので、いくつかの説明が必要です。文字列からJavaバイナリツリーを逆シリアル化する
基本的に、私の実装はほとんど正しいと私は確信しています、私はちょうど私がやっていたことにいくつかのバックストーリーを与えたいと思います。
だから、私の本当の問題は、私は文字列にバイナリツリーを直列化していることである:よう
1
2 3
4 5
:
#はちょうどヌルノードです1 2 4 # # 5 # # 3 # #
。
文字列から再構築しようとしているときに問題が発生します。私はかなりの時間をかけていくつかの掘削をしてきましたが、私はそれを過度に複雑化していると思います。
最初の要素は1なので、それをintに変更して、それを要素とするノードを作成します。次は2ですから、同じことをしてから4をしてください。次は#なので、葉などがないので無視します。
次に、文字列の残りの部分前から既に読み込まれている)を再帰呼び出しに変換します。
要約すると、私の質問は基本的には「説明したように解析し、残りの文字列を再帰呼び出しに送るのが最も簡単な方法は何ですか?」文字列にツリーをシリアライズするとき
OPは彼の質問に説明するよう、あなたがそれを解釈する場合、既存の構文があいまいで。これは、基本的にプリオーダー深度の最初の走査で、ヌルに遭遇するたびに「#」を出力します。 –
@StephenCはい、指定された順序でトラバーサルがある場合、あいまいさはありません。 –