Example #1
0
 public static void Recorrido(ref Dictionary <byte, string> DiccionarioPre, nodoarbol Raiz, string camino)
 {
     if (Raiz != null)
     {
         var caminoDer = $"{camino}1";
         Recorrido(ref DiccionarioPre, Raiz.nododer, caminoDer);
         if (Raiz.caracter != 0)
         {
             DiccionarioPre.Add(Raiz.caracter, camino);
         }
         var caminoIzq = $"{camino}0";
         Recorrido(ref DiccionarioPre, Raiz.nodoizq, caminoIzq);
     }
 }
Example #2
0
        public static void Insertar(List <nodoarbol> ListaNodo, IFormFile archivo, string nombre)
        {
            while (ListaNodo.Count != 1)
            {
                var nodoAux = new nodoarbol();

                nodoAux.Frecuencia = ListaNodo[0].Frecuencia + ListaNodo[1].Frecuencia;

                nodoAux.nodoizq = ListaNodo[1];
                nodoAux.nododer = ListaNodo[0];

                ListaNodo.RemoveRange(0, 2);
                ListaNodo.Add(nodoAux);
                ListaNodo.Sort();
            }

            var DiccionarioPrefijos = new Dictionary <byte, string>();
            var camino = "";

            Recorrido(ref DiccionarioPrefijos, ListaNodo[0], camino);

            ComprimirArchivo(DiccionarioPrefijos, archivo, nombre);
        }