Создайте дерево Хаффмана с четырьмя символами вместо двоичного

Привет всем. Я разрабатываю двоичное дерево для алгоритма Хаффмана для кодирования строки, но в своей диссертации я хочу закодировать строку для таких символов, как A,B,C,D вместо 0,1, я хочу создать три с четырьмя символами.

в алгоритме Хаффмана сначала мы выбираем последние два символа и создаем дерево, но я хочу выбрать последние четыре символа и создать узел и продолжить алгоритм таким образом, и, наконец, создать дерево

Вот код для создания двоичного дерева с 0,1:

private function fillDictionary(&$dictionary, $data, $value = '')
{
    if (!is_array($data[0][1])) {
        $dictionary[$data[0][1]] = $value . '0';
    } else {
        $this->fillDictionary($dictionary, $data[0][1], $value . '0');
    }
    if (isset($data[1])) {
        if (!is_array($data[1][1])) {
            $dictionary[$data[1][1]] = $value . '1';
        } else {
            $this->fillDictionary($dictionary, $data[1][1], $value . '1');
        }
    }
}

Суть моего вопроса такова: вместо 0,1 создайте дерево с четырьмя символами A,B,C,D и закодируйте данные с ними. Пожалуйста, помогите мне завершить мой тезис, спасибо:)

0 ответов

Другие вопросы по тегам