コード例 #1
0
        private void SetCodes(string code, HuffmanNode Nodes)
        {
            if (Nodes == null)
            {
                return;
            }
            if (Nodes.LeftTree == null && Nodes.RightTree == null)
            {
                Nodes.Code = code;
                return;
            }

            SetCodes(code + "0", Nodes.LeftTree);
            SetCodes(code + "1", Nodes.RightTree);
        }
コード例 #2
0
        public Dictionary <string, byte[]> GetCharCodes(HuffmanNode nodes)
        {
            if (nodes == null)
            {
                return(new Dictionary <string, byte[]>());
            }
            if (nodes.LeftTree == null && nodes.RightTree == null)
            {
                charCodes.Add(nodes.Character, GetByteCode(nodes.Code));
                return(charCodes);
            }
            GetCharCodes(nodes.LeftTree);
            GetCharCodes(nodes.RightTree);

            return(charCodes);
        }