Приклад кодування Хафмана.

 

Закодуємо поліндром(рядок, що читається однаково за обома напрямками):

A MAN A PLAN A CANAL PANAMA.

Початковій пул:

A C L M N P <SPACE> .

10 1 2 2 4 2 6 1

 

1.Два значення з найменшою появою у тексті (=1)-символи «С» та «.». Використовуємо ці символи для створення вузла дерева. Призначаємо цьому вузлу значення частоти, що дорівнює частоті гілок, що відходять від вузла. Маємо пул з вузлом дерева:

A L M N P <SPACE>

10 2 2 4 2 6

С .

1 1

2. Чотири елементи, що відображені в пулі, мають нижчу частоту, що = 2. Беремо «P» і вузол дерева, з’єднуємо їх між собою, щоб створити новий вузол дерева із сумарною частотою, що = 4.

A L M N <SPACE>

10 2 2 4 6

 


4

Р2

С .

1 1

3.Тепер із залишених символів найменша частота зустрічається у букв L та M. Оскільки всім доступним гілкам дерева призначені більші частоти, необхідно створити новий вузол, не з’єднаний з деревом:

 

A N <SPACE>

10 4 4 6 4

L M Р

2 2 2 С .

1 1

4. Тепер є два вузли дерева та буква «N», що зв’язані з найменшою частотою, що = 4. Ми обираємо букву «N» і приєднуємо її до дерева:



A <SPACE>

10 4 6 N 4

4 2

L M Р

2 2 2 С .

1 1

5. Із залишених елементів:

 

 

A

10 10 8

<SPACE> 4 N 4

6 4 2

L M Р

2 2 2 С .

1 1

 

6. Тепер залишились 2 вузла дерева та буква «А». Ми довільно вирішуємо з’єднати два вузли дерева, а не букву з одним із цих вузлів:

 


A 18

10 10 8

<SPACE> 4 N 4

6 4 2

L M Р

2 2 2 С .

1 1









Дата добавления: 2014-12-08; просмотров: 1131;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.