バイナリツリーの順序:※オファーはシリーズ50勝

最初はそれはバイナリ列の文字列に変換することで、シリアル化されたバイナリツリーがあるものです。デシリアライゼーションは、バイナリシーケンスの列として構成されています。

私は本当に理由を書き、質問を理解していません

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 }。

 

おすすめ

転載: www.cnblogs.com/neverland0718/p/11265752.html