/// <summary>
        /// Method used for testing that displays encoding to the console.
        /// </summary>
        /// <param name="root"></param>
        private void DisplayEncodingTable(BinaryTreeNode <CharacterFrequency> root)
        {
            if (root != null)
            {
                Encoding.Append("0");
                DisplayEncodingTable(root.Left);
                if (root.IsLeaf())
                {
                    var charEncoding = new CharacterEncoding((byte)root.Data.Character, Encoding.ToString());
                    Console.Write(charEncoding.Character.ToString());
                    Console.Write(" - ");
                    Console.WriteLine(charEncoding.Encoding);
                }

                Encoding.Append("1");
                DisplayEncodingTable(root.Right);

                if (Encoding.Length > 0)
                {
                    Encoding.Remove(Encoding.Length - 1, 1);
                }
            }
            else
            {
                // Remove a character from the encoding string// Check and reove multiple 0's too maybe?
                Encoding.Remove(Encoding.Length - 1, 1);
                //Console.WriteLine("remove!");
            }
        }
        /// <summary>
        /// Builds Encoding table for the given huffman tree root node
        /// </summary>
        /// <param name="root">Huffamn tree root</param>
        private void BuildEncodingTable(BinaryTreeNode <CharacterFrequency> root)
        {
            if (root != null)
            {
                Encoding.Append("0");
                BuildEncodingTable(root.Left);
                if (root.IsLeaf())
                {
                    byte index = (byte)root.Data.Character;
                    CharEncodings[index].Encoding = Encoding.ToString();
                }

                Encoding.Append("1");
                BuildEncodingTable(root.Right);

                if (Encoding.Length > 0)
                {
                    Encoding.Remove(Encoding.Length - 1, 1);
                }
            }
            else
            {
                // Remove a character from the encoding string// Check and reove multiple 0's too maybe?
                Encoding.Remove(Encoding.Length - 1, 1);
                //Console.WriteLine("remove!");
            }
        }