La serialización binaria - oferta para probar la seguridad

título Descripción

Implementar dos funciones se utilizan para serializar y deserializar binario
 
Se refiere a una secuencia de binario: el árbol binario se guarda en un formato de cadena de acuerdo con el resultado de una forma de desplazamiento de tal manera que la memoria se puede configurar binario persistió. Serialización se puede basar en el primer orden, en secuencia, después, la secuencia de recorrido de árbol binario es modificado, la secuencia del resultado es una cadena que representa los nodos en blanco (#) por algunas secuencias de símbolo para! nodo final representa un valor (valor!).

deserializados medios de árboles binarios: La cadena serializada str algunos resultados obtenidos orden de recorrido de reconstruir un árbol binario.
 
Pensando: preorden recorrido se almacena en una cadena de la cadena construida
dos recursiva
pública  clase de soluciones {
     int i = -1 ;
    Cadena Serialize (raíz TreeNode) {
        StringBuilder sb = nuevo StringBuilder ();
        si (raíz == nula ) de retorno "#!" ;
        SerializeHelper (raíz, SB);
        volver sb.ToString ();
    }

    / *
    preorden recorrido
     * / 
    Privada  vacío SerializeHelper (raíz TreeNode, StringBuilder sb) {
         si (raíz == nula ) {
            sb.append ( "#" );
            volver ;
        }
        sb.append (String.valueOf (root.val));
        sb.append ( "!" );
        SerializeHelper (root.left, sb);
        SerializeHelper (root.right, sb);
    }

    TreeNode Deserialize (String str) {
        si (str == nula ) de retorno  nulo ;
        String [] cadenas = str.split ( "!" );
        si (strings.length == 1) de retorno  nulo ;
        volver DeserializeHelper (cuerdas);
    }

    privada NodoArbol DeserializeHelper (String [] str) {
        Raíz TreeNode = nulo ;
        i ++ ;
        si (! str [i] .equals ( "#" )) {
            raíz = nuevo TreeNode (Integer.valueOf (str [i]));
            root.left = DeserializeHelper (str);
            root.right = DeserializeHelper (str);
        }
        devolver la raíz;
    }
}

 

Supongo que te gusta

Origin www.cnblogs.com/nlw-blog/p/12482197.html
Recomendado
Clasificación