Exemplo n.º 1
0
 ////Recorre el arbol para obtener el camino
 public void Recorrido(ref Dictionary <byte, string> DiccionarioPre, nodoArbol Raiz, string camino)
 {
     if (Raiz != null)
     {
         var caminoDer = $"{camino}1";
         Recorrido(ref DiccionarioPre, Raiz.nodoDerecho, caminoDer);
         if (Raiz.Letra != 0)
         {
             DiccionarioPre.Add(Raiz.Letra, camino);
         }
         var caminoIzq = $"{camino}0";
         Recorrido(ref DiccionarioPre, Raiz.nodoIzquierdo, caminoIzq);
     }
 }
Exemplo n.º 2
0
        //Crea el arbol huffman para luego empezar la compresion
        public void Insertar(List <nodoArbol> ListaNodo, string nombre, string ArchivoActual, string extension)
        {
            while (ListaNodo.Count != 1)
            {
                var nodoAux = new nodoArbol();

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

                nodoAux.nodoIzquierdo = ListaNodo[1];
                nodoAux.nodoDerecho   = 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, nombre, ArchivoActual, extension);
        }