В inftrees.c, что код, чтобы построить таблицу поиска из канонического HUFFMAN представления, автор запись:Реализация Zlib алгоритма раздувать
/* replicate for those indices with low len bits equal to huff */
incr = 1U << (len - drop);
fill = 1U << curr;
min = fill; /* save offset to next table */
do {
fill -= incr;
next[(huff >> drop) + fill] = here;
} while (fill != 0);
/* backwards increment the len-bit code huff */
incr = 1U << (len - 1);
while (huff & incr)
incr >>= 1;
if (incr != 0) {
huff &= incr - 1;
huff += incr;
}
else
huff = 0
я мог понять, в чем смысл падения, хотя я прочитайте комментарий много раз. Другой вопрос - какой метод использует автор для создания кода хаффмана? Что такое назад приращение?
Не могли бы вы объяснить это мне, спасибо.