Ejemplo n.º 1
0
            private void AddSymbol(int symbol, int code, int level)
            {
                if (level <= 0)
                {
                    value = symbol;
                    return;
                }

                if (!IsInner())
                {
                    left  = new HuffmanTree();
                    right = new HuffmanTree();
                    left.AddSymbol(symbol, code, level >> 1);
                    return;
                }

                if ((code & level) == 0)
                {
                    left.AddSymbol(symbol, code, level >> 1);
                }
                else
                {
                    right.AddSymbol(symbol, code, level >> 1);
                }
            }