5. Описание реализации
Структуры данных
Ключевым вопросом реализации является организация словарей,
обеспечивающая быстрое отождествление (поиск в словаре) накопленной
строки и текущего символа, а также эффективную модификацию словаря
(добавление новой строки и освобождение элемента при переполнении
словаря). British Telecom предложила в свое время схему представле-
ния деревьев в словаре, которая получила название TRIE. На рис. 5
представлено условное изображение набора элементов из предыдущих
примеров для корневого узла D.
В соответствии со схемой TRIE словарь представляет из себя
массив однородных элементов. Каждый элемент соответствует набору
строк (или одной строке для листьевого элемента), хранящихся в сло-
варе и состоит из:
- поля символа,
- ссылки на предшествующий символ в строке (ссылка вверх на
предшественника - Родителя), если этот символ не первый,
- ссылки на последующий символ в строке (ссылка вниз на после-
дователя - Наследника), если этот символ не последний в
строке,
- ссылки на другое возможное продолжение строки, имеющей такое
же начало, как и текущая строка (ссылка вправо на Брата) и
- значения кодового слова, соответствующего элементу словаря.
Структура массива, соответствующего рис. 5, приведена ниже (Null оз-
начает отсутствие ссылки).
--------------------------------------------------------
Ё Символ Ё Родитель Ё Наследник Ё Брат Ё Кодовое слово Ё
--------------------------------------------------------
...
--------------------------------------------------------
Ё D Ё Null Ё E Ё Null Ё 71 Ё
--------------------------------------------------------
...
--------------------------------------------------------
Ё E Ё D Ё Null Ё O Ё 311 Ё
Ё O Ё D Ё T Ё Null Ё 312 Ё
Ё T Ё O Ё Null Ё G Ё 313 Ё
Ё G Ё O Ё Null Ё Null Ё 314 Ё
--------------------------------------------------------
...
Текущая строка представляется номером элемента в массиве,
отождествление текущей строки, дополненной очередным символом, про-
изводится просмотром цепочки элементов, соединенных ссылкой вправо,
а ссылка на эту цепочку есть ссылка на потомка (вниз) от текущей
строки. Удаление строки (листьевого элемента) естественным образом
реализуется удалением элемента из цепочки братьев с корректировкой
ссылок вправо и, возможно, ссылки вниз родителя цепочки.
V.42bis от "Аналитик ТелекомСистемы" идеологически соответс-
твует TRIE, однако отличается на уровне реализации, что преследовало
целью уменьшение требований по памяти под словари и увеличение ско-
рости доступа.
<<- Как устроен V.42bis/
->> Влияние параметров V.42bis на эффективность, их оптимальные значения
ПРОТОКОЛ СЖАТИЯ ДАННЫХ ДЛЯ МОДЕМОВ V.42bis. История вопроса, как устроен протокол, описание реализации, влияние перематров на эффективность, smart реализация [К списку статей] [К оглавлению]
|
 |