КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Приклад кодування Хафмана.
Закодуємо поліндром(рядок, що читається однаково за обома напрямками): 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
|