public Nodo() { Izq = null; Der = null; info = null; suma = 0; codigo = ""; }
public ClassHuffman(string entrada) { CARACTERES = Caracter.asignarFrecuencias(entrada); InsertarNodos(); RetornarArbol(datos); Imprimir(); List <Caracter> list2 = decodificados.OrderByDescending(x => x.frecuencia).ThenBy(x => x.car).ToList(); decodificados = list2; }
private void Imprimir(Nodo reco, string anterior) { if (reco != null) { if (reco.info != null) { Caracter nuevo = new Caracter(); nuevo.car = reco.info.car; nuevo.codigo = reco.codigo + anterior; nuevo.frecuencia = reco.info.frecuencia; decodificados.Add(nuevo); } Imprimir(reco.Izq, reco.codigo + anterior); Imprimir(reco.Der, reco.codigo + anterior); } }
public static List <Caracter> asignarFrecuencias(string entrada) { List <Caracter> listaCar = new List <Caracter>(); int j = 0; for (int i = 33; i < 127; i++) { Caracter c = new Caracter(Convert.ToChar(i), entrada.Count(a => a == Convert.ToChar(i))); if (c.frecuencia > 0) { listaCar.Add(c); } } List <Caracter> list2 = listaCar.OrderByDescending(x => x.frecuencia).ThenBy(x => x.car).ToList(); foreach (var item in list2) { item.indice = j; j++; } return(list2); }
public Shannon(string entrada) { CARACTERES = Caracter.asignarFrecuencias(entrada); }
public Huffman(string entrada) { CARACTERES = Caracter.asignarFrecuencias(entrada); }
public NodoHuffman() { Izq = null; Der = null; info = null; }