コード例 #1
0
        //Huffman Coding
        public string DoCompression()
        {
            FrequencyTable           frequency      = new FrequencyTable();
            Dictionary <string, int> frequencyTable = frequency.BuildFrequencyTable(encodedFile);

            HuffmanTree  tree     = new HuffmanTree();
            HuffmanNodes fullTree = tree.BuildTree(frequencyTable, frequency);
            IDictionary <string, string> binaryValues = tree.AssignCode();

            binaryValues[binaryValues.First().Key] = "0"; //Stops eliminating first value

            foreach (KeyValuePair <string, string> kvp in binaryValues)
            {
                Console.WriteLine((kvp.Key == "\n" ? "EOF" : kvp.Key.ToString()) + ":\t" + kvp.Value);
            }


            string final = handleHuffmanFile(binaryValues);

            return(final);
        }