Я работаю над эффективной реализацией сжатия Хаффмана, но это нужно сделать уникальным способом: мне нужно найти способ записать свое дерево Хаффмана в мою кодировку, прежде чем передавать его в декодер, как для этого конкретного проекта. нам разрешено передавать только один указатель на декодер. Я не могу передать само дерево, потому что тогда я не смог бы пройти кодировку.
У кого-нибудь есть хороший способ эффективного хранения моего дерева Хаффмана в моей кодировке Хаффмана?
В настоящее время я реализую это с помощью C ++.
Вы не можете хранить дерево Хаффмана внутри Ваша кодировка Хаффмана — декодер должен знать это перед декодированием.
Вы должны сериализации ваше дерево Хаффмана и добавьте его к вашим закодированным данным Хаффмана. Ваш декодер должен десериализовать дерево перед декодированием.
Вы не хотите или должны передавать дерево. Все, что вам нужно отправить, это количество бит для каждого символа. Из этого вы можете построить то же самое канонический код на обоих концах.