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); } }