Изменения

Перейти к: навигация, поиск
м
Реализация
=== Реализация ===
  <span style="color:Green">// s - наша строка обхода, tree[] — дерево вершин, code — текущий код, alphabet[] — массив кодов символов, </span> <span style="color:Green">// c'[] — номера символов в порядке обхода</span> '''function''' huffman(): <span style="color:Green">//текущая вершина - корень дерева</span> curV = root '''for''' i = 0..n - 2 '''if''' s[i] == 'D' curV = tree[curV].leftChild code += '0' '''if''' curV не имеет детей alphabet[следующий номер c'].push(code) '''else''' '''while''' curV является правым ребенком и curV не корень curV = tree[curV].parent удалить из code последний символ curV = tree[curV].rightChild code += '1' '''if''' curV не имеет детей alphabet[следующий номер c'].push(code)
=== Смотрите также ===
32
правки

Навигация