Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 2
Регистрация: 14.02.2011
Сообщений: 25

Нужен код программы для кодировки методом ХафФмана

30.10.2011, 19:42. Показов 2111. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Немного теории:
Дерево кодирования Хаффмена (Н-дерево) - двоичное дерево, у которого каждый узел имеет вес, и вес родителя равен суммарному весу его детей.

Классический алгоритм Хаффмена на входе получает таблицу частот встречаемости символов в сообщении. Далее на основании этой таблицы строится дерево кодирования Хаффмена (Н-дерево). Алгоритм построения Н-дерева прост и элегантен.
1. Символы входного алфавита образуют список свободных узлов. Каждый лист имеет вес, который может быть равен либо вероятности, либо количест¬ву вхождений символа в сжимаемое сообщение.
2. Выбираются два свободных узла дерева с наи¬меньшими весами.
3. Создается их родитель с весом, равным их сум¬марному весу.
4. Родитель добавляется в список свободных узлов, а двое его детей удаляются из этого списка.
5. Одной дуге, выходящей из родителя, ставится в соответствие бит 1, другой — бит 0.
6. Шаги, начиная со второго, повторяются до тех пор, пока в списке свободных узлов не останется только один свободный узел. Он и будет считаться корнем дерева.

Классический алгоритм Хаффмена имеет один су¬щественный недостаток. Для восстановления содер¬жимого сжатого сообщения декодер должен знать таб¬лицу частот, которой пользовался кодер. Следова¬тельно, длина сжатого сообщения увеличивается на длину таблицы частот, которая должна посылаться впереди данных, что может свести на нет все усилия по сжатию сообщения. Кроме того, необходимость на¬личия полной частотной статистики перед началом собственно кодирования требует двух проходов по со¬общению: одного для построения модели сообщения (таблицы частот и Н-дерева), другого для собственно кодирования.


Что должно быть в программе:
1.Вход программы: произвольный текстовый файл. Реализуйте только первую итерацию классического алгоритма. На первой итерации происходит построение модели данных: построение таблицы частот и Н-дерева.
2.Вывод программы: "таблица" кодов для каждого символа.
Если можно:
Код был с кометариями и не очень объёмен. А то я на С++ новичок
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.10.2011, 19:42
Ответы с готовыми решениями:

Нужен исходный код программы для изучения
Здравствуйте, товарищи друзья :)! Описываю задачу: Нужен исходный код программы, состоящей из: Окна Текста (любого) ...

Нужен код программы (Windows Forms) с комментариями для изучения языка
Хочу научиться использовать Windows Forms. Напишите код (с построчными комментариями!) программы: пользователь вводит логин и пароль...

Нужен код программы для перевода чисел с десятичной системы счисления в римские числа
нужен код простой программы с проверками на ANSI C, которая переводит числа из десятичной системы счисления в римские числа.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.10.2011, 19:42
Помогаю со студенческими работами здесь

Код Хаффмана для факсимильных сообщений
Не знаю сюда мне обратиться за помощью или не сюда? Но попробую. Дана задача: Рассчитайте, во сколько раз сократится избыточность...

Сжать XML файл методом Хаффмана или арифметическим методом или методом RLE
Всем привет. На носу сессия, а с последней лабой по ооа и п дела совсем плохи. помогите пожалуйста, Условие: в XML файл заносят...

нужен код программы
Для процессора х86 вычислить (a+b)\2 при а=3, b=2. Входные данные должны быть в памяти. а результат выделить. я надеюсь на вашу помощь!

Очень нужен код программы
Дан одномерный массив размерности n. Вывести индексы элементов массива в том порядке, в котором соответствующие им элементы образуют...

Нужен код программы распознования речи
Здравствуйте. Я пишу диссертацию на тему повышения качества выполнения диспетчерами задач управления воздушными судами. И придумал как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru