示例#1
0
 public Nodo()
 {
     Izq    = null;
     Der    = null;
     info   = null;
     suma   = 0;
     codigo = "";
 }
示例#2
0
        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;
        }
示例#3
0
 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);
     }
 }
示例#4
0
        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);
        }
示例#5
0
 public Shannon(string entrada)
 {
     CARACTERES = Caracter.asignarFrecuencias(entrada);
 }
示例#6
0
 public Huffman(string entrada)
 {
     CARACTERES = Caracter.asignarFrecuencias(entrada);
 }
示例#7
0
 public NodoHuffman()
 {
     Izq  = null;
     Der  = null;
     info = null;
 }