[ Foro de Java ]

Algoritmo Huffman

24-May-2021 17:34
Invitado (Ruben)
0 Respuestas

Hola, buenas tardes. Estoy haciendo el algoritmo de Java pero el profesor nos ha dicho que no podemos implementar niguna colección de Java ya predefinida. Si estoy haciendo este algoritmo con una cola de priporidad utilizando solo las funciones offer() y poll() como las puedo implementar por mi mismo?  Este es el código:
public static ArbreHuffman constArbre(int[] frecLletres) {
       // Crea una cua de prioritat
       // La cua es crearà en l'ordre de freqüència de la lletra del text
       PriorityQueue<ArbreHuffman> arbres = new PriorityQueue<ArbreHuffman>();
    // Crea les fulles dels arbres per a cada lletra
       for (int i = 0; i < frecLletres.length; i++){
           if (frecLletres[i] > 0)
               arbres.offer(new HuffmanFulla(frecLletres[i], (char)i)); // Insereix els elements, node fulla, a la cua de prioritat
       }
       // Feu un recorregut per tots els elements de la cua
       // Creació de l’arbre binari de baix a dalt
       while (arbres.size() > 1) {
           // Obteniu els dos nodes amb menys freqüència
           ArbreHuffman a = arbres.poll(); // enquesta: retorna el següent node de la cua o NULL si no en té més
           ArbreHuffman b = arbres.poll(); // enquesta: retorna el següent node de la cua o NULL si no en té més

        // Creeu els nodes d'arbres binaris
           arbres.offer(new HuffmanNode(a, b));
       }
    // Retorna el primer node de l'arbre
       return arbres.poll();


   }
Este algoritmo se basa en Huffman que es un codificador y descodificador que no lo he dicho




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)