如何验证序列化二叉树?

时间:2014-09-22 01:56:55

标签: serialization binary-tree

我有一个包含二叉树序列化的字符串。序列化已使用预订完成。如何检查给定字符串是否为有效序列化?

例如:

A B * * *

有效的树

                                       A
                                     /   \
                                    B    NULL 
                                  /  \ 
                               NULL  NULL

A * B * * *无效

A * * B * *无效

此代码是否足以验证

    Node *MakeTree(char *s)
    {
       if(!s)
         return NULL;

       if(*s=='*')
         return NULL;

       Node *root = newNode(*s);
       s++;
       root->left = MakeTree(s);
       root->right = MakeTree(s);
       return root;
    }

  bool IsValid(char *s)
  {

   if(!MakeTree(s))
      cout<<"Invalid";
   else
      cout<<"Valid";
  }

0 个答案:

没有答案