最初はそれはバイナリ列の文字列に変換することで、シリアル化されたバイナリツリーがあるものです。デシリアライゼーションは、バイナリシーケンスの列として構成されています。
私は本当に理由を書き、質問を理解していません
1 クラスソリューション{ 2 公共: 3 ベクトル< INT > AUX。 4 空隙 treetovec(ツリーノード*のルート) 5 { 6 場合(ルート!)// 空节点 7 { 8 aux.push_back(0xFFFFFFFFの); 9 } 10 他{ 11 aux.push_back(root-> ヴァル) 12 treetovec(root->左)。// 前序遍历 13 treetovec(root->右); 14 } 15 16 } 。17 ツリーノードvectotree×(INT *&C) 18である { 19 IF(* C == 0xFFFFFFFFの)// ヌルノード 20は 、{ 21である C ++ 、 22は リターンNULL; 23である } 24 他{ 25 のTreeNode * = CUR 新しい新しいのTreeNodeは(* C); // この文は何ですか? 26は // TreeNodeを初期化するために、int型の変数を使用する 27 C ++を; 28 cur->左= vectotree(C); 29 cur->右= vectotree(C); 30 リターンCUR。 31 } 32 } 33 のchar *シリアライズ(ツリーノード*ルート)// 序列化二叉树 34 { 35 treetovec(ルート)。 36 INT LEN = aux.size()。 37 INT * RES = 新しい INT [LEN]。 38 のために(int型 I = 0 ; iがLEN <; Iは++ ) 39の RES [I] =AUX [I]; 40 リターン(CHAR * )RES; 41は 42である } 43れている ツリーノードデシリアライズ*は(チャー *のSTR)// バイナリツリーデシリアライズ 44である { 45 INT * C =(INT * )STR; 46は、 リターン(C)vectotree ; 47 } 48 }。