- •Самарский государственный архитектурно-строительный университет
- •«Защита информации»
- •Оглавление
- •1.Постановка задачи
- •2.Аналитическая часть
- •3. Конструкторская часть
- •3.1.Формирование таблицы частот
- •3.2.Построение дерева Хаффмена
- •3.3. Кодирование выбранного для проверки слова
- •3.4. Декодирование сообщения
- •Библиографический список
3. Конструкторская часть
3.1.Формирование таблицы частот
Пусть она имеет вид:
Таблица 3.1. Частота букв
-
Символ
A
B
C
D
E
F
G
H
I
Частота
15
6
7
12
25
4
6
1
15
3.2.Построение дерева Хаффмена
При построении нужно учитывать сбалансированность бинарного дерева. Дерево считается сбалансированным, если высоты левого поддерева и правого поддеревьев отличаются не более чем на 1. Высотой дерева называется максимальное число ребер от корня дерева к листу.
IHFBDEGCA,91
IHFBD,38
EGCA,53
I
,15
HFBD,23
E,25
GCA,28
HFB,11 D,12
GC,13 A,15
HF,5 B,6
G,6 C,7
H,1 F,4
Рис. 1.2. Дерево Хаффмена
После построения дерева проведем кодировку символов. Оформим результат в виде таблицы.
Таблица 3.2. Кодировки букв по частоте
Символ |
A |
B |
C |
D |
E |
F |
G |
H |
I |
Код |
111 |
0101 |
1101 |
011 |
10 |
01001 |
1100 |
01000 |
00 |
3.3. Кодирование выбранного для проверки слова
Выберем слово AHEAD и закодируем его, учитывая коды таблицы 3.2. Получим код:
1110100010111011
Передаем этот код и таблицу 3.1. для декодирования.
3.4. Декодирование сообщения
Пусть для декодирования были получены:
Таблица 3.3. Частота букв
-
Символ
A
B
C
D
E
Y
G
H
I
Частота
2
3
4
1
3
4
1
2
6
и код 0000100100000000111
построим дерево Хаффмена и по нему раскодируем текст. Получим слово: DADDY.
