// Création du code de Huffman à partir de l'arbre binaire public HuffmanCode createHuffman() { HuffmanCode hC = new HuffmanCode(); byte b = new byte(); hC.setCode(recursiveHuffman(hC.getCode(), _tree, b, 0)); return(hC); }
bool Huffman.IPlugin.Decompress(ref Huffman.HuffmanData hf) { try { TableFq tf = new TableFq(hf.frequency); // Création de la table de frèquence à partir des données d'entrée BinaryTree bnTree = new BinaryTree(); // nouvel arbre binaire vide bnTree.feedTree(tf); // initialisation de l'arbre avec la table de fréquence bnTree.computeTree(); //génération de l'arbre binaire final à partir des données qu'il contient HuffmanCode hfCode = new HuffmanCode(); hfCode = bnTree.createHuffman(); //génération d'un code huffman pour chaque byte différent des données d'entrée à l'aide de l'arbre binaire (stockage dans un dictionnaire) hf.uncompressedData = hfCode.decompress(hf.compressedData, hf.sizeOfUncompressedData); /* décompression à l'aide du code de Huffman. Stockage dans la structure HuffmanData * qui est échangée entre le plugin et le programme par le biais de MarshalByRefObject */ } catch (Exception e) { return(false); // la décompression a échouée si une exception est levée } return(true); }