////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); } }
//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); }