0 / 0 / 0
Регистрация: 28.03.2015
Сообщений: 18
|
||||||
1 | ||||||
Создание дерева для алгоритма Хаффмана18.01.2016, 08:10. Показов 2344. Ответов 4
Метки нет (Все метки)
Привет форумчане.
Наверно все те кто хоть раз интересовался сжатием файлов знаком таким методом как Алгоритм Хаффмана . Есть задача реализовать этот алгоритм на Паскаль. Для тех кому лень читать хочу пояснить вкратце , очень коротко... Во общем, что делает этот алгоритм . Он просчитывает частоту вывода каждого символа из строки и уменьшает вес более повторяющегося символа, при это увеличивая вес менее повторяющегося символа. Во общем можете почитать об этом и здесь Хабрахабр. Начало алгоритма я написал. Это до просчета частоты вывода и сортировка методом пузырька по массиву.
Добавлено через 16 часов 10 минут Походу дело до ответа не дойдёт ...
0
|
18.01.2016, 08:10 | |
Ответы с готовыми решениями:
4
Написать программу дешифровки алгоритма Хаффмана Как исправить пример программы работы Алгоритма Хаффмана? Реализация алгоритма построения минимального остовного дерева для графа Реализация Алгоритма Хаффмана |
28 / 28 / 23
Регистрация: 26.12.2015
Сообщений: 154
|
||||||
18.01.2016, 21:30 | 2 | |||||
Сообщение было отмечено dinaf2000 как решение
Решение
1
|
0 / 0 / 0
Регистрация: 28.03.2015
Сообщений: 18
|
|
21.01.2016, 18:10 [ТС] | 3 |
Спасибо за решение !!!!! + в репу.
На счет построения дерева, есть какие-нибудь уроки ? Я бы не прочь и самому научиться
0
|
28 / 28 / 23
Регистрация: 26.12.2015
Сообщений: 154
|
|
21.01.2016, 18:40 | 4 |
На самом деле фактического "дерева" программа не строит - если построчно посмотреть происходит следующее:
шаг1: массив vesarr= a,b,c,d,e массив codearr='','','','','' (пустые значения по количеству элементов vesarr) шаг2: среди двух последних элементов массива vesarr находим состоящий из одного символа, если он последний кидаем в codearr на его позицию 0, если предпоследний то 1 шаг3: находим среди двух последних элементов vesarr тот чья длина больше одного и всем элементам codearr из которых он состоит добавляем в начало 0, если предпоследний то 1 шаг 5 Объединяем в vesarr два последних элемента, суммируя вес шаг 5 сортируем vesarr по убыванию веса шаг 6 переходим к шагу 1, если длина vesarr больше одного , как строить именно "дерево", используя наследование в pascal - не знаю (в ООП языках все проще), хотя для данной задачи это может быть и не нужно
0
|
0 / 0 / 0
Регистрация: 28.03.2015
Сообщений: 18
|
|
21.01.2016, 19:18 [ТС] | 5 |
Спасибо за алгоритм.
Завтра сам попробую скину, если получится .
0
|
21.01.2016, 19:18 | |
21.01.2016, 19:18 | |
Помогаю со студенческими работами здесь
5
Построение дерева Хаффмана для одноименного алгоритма Построение дерева Хаффмана Обход дерева Хаффмана Исходник алгоритма Хаффмана на C Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |